zou 0.19.48__tar.gz → 0.19.50__tar.gz
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-0.19.48/zou.egg-info → zou-0.19.50}/PKG-INFO +5 -5
- {zou-0.19.48 → zou-0.19.50}/setup.cfg +4 -4
- zou-0.19.50/zou/__init__.py +1 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/persons/resources.py +54 -13
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/shots/resources.py +34 -4
- {zou-0.19.48 → zou-0.19.50}/zou/app/mixin.py +1 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/task.py +1 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/assets_service.py +3 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/entities_service.py +3 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/shots_service.py +112 -33
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/tasks_service.py +26 -1
- zou-0.19.50/zou/migrations/versions/ca28796a2a62_add_is_done_field_to_the_task_model.py +108 -0
- {zou-0.19.48 → zou-0.19.50/zou.egg-info}/PKG-INFO +5 -5
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/SOURCES.txt +1 -0
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/requires.txt +4 -4
- zou-0.19.48/zou/__init__.py +0 -1
- {zou-0.19.48 → zou-0.19.50}/LICENSE +0 -0
- {zou-0.19.48 → zou-0.19.50}/README.rst +0 -0
- {zou-0.19.48 → zou-0.19.50}/pyproject.toml +0 -0
- {zou-0.19.48 → zou-0.19.50}/setup.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/api.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/assets/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/assets/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/auth/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/auth/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/breakdown/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/breakdown/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/chats/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/chats/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/comments/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/comments/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/concepts/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/concepts/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/asset_instance.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/attachment_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/chat.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/chat_message.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/comments.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/custom_action.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/day_off.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/department.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/entity.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/entity_link.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/entity_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/event.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/file_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/metadata_descriptor.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/milestone.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/news.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/notification.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/organisation.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/output_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/output_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/person.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/playlist.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/preview_background_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/preview_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/project.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/project_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/schedule_item.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/search_filter.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/search_filter_group.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/software.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/status_automation.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/studio.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/subscription.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/task.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/task_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/task_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/time_spent.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/crud/working_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/edits/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/edits/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/entities/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/entities/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/events/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/events/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/assets.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/casting.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/edits.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/persons.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/playlists.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/projects.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/shots.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/task_types.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/tasks.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/export/csv/time_spents.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/files/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/files/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/index/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/index/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/news/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/news/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/persons/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/playlists/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/playlists/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/previews/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/previews/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/projects/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/projects/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/search/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/search/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/shots/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/assets.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/casting.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/edits.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/persons.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/shots.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/csv/task_type_estimations.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/kitsu.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/otio.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/assets.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/episode.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/exception.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/import_errors.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/notes.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/person.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/project.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/scene.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/sequence.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/shot.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/steps.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/tasks.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/team.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/source/shotgun/versions.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/tasks/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/tasks/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/user/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/blueprints/user/resources.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/config.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/file_trees/default.json +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/file_trees/simple.json +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/indexer/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/indexer/indexing.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/asset_instance.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/attachment_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/build_job.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/chat.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/chat_message.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/comment.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/custom_action.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/data_import_error.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/day_off.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/department.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/desktop_login_log.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/entity.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/entity_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/event.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/file_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/login_log.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/metadata_descriptor.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/milestone.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/news.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/notification.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/organisation.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/output_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/output_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/person.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/playlist.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/preview_background_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/preview_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/project.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/project_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/schedule_item.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/search_filter.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/search_filter_group.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/serializer.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/software.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/status_automation.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/studio.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/subscription.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/task_status.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/task_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/time_spent.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/models/working_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/auth_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/backup_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/base_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/breakdown_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/chats_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/comments_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/concepts_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/custom_actions_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/deletion_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/edits_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/emails_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/events_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/exception.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/file_tree_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/files_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/index_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/names_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/news_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/notifications_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/persons_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/playlists_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/preview_files_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/projects_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/scenes_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/schedule_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/stats_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/status_automations_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/sync_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/telemetry_services.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/time_spents_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/services/user_service.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/stores/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/stores/auth_tokens_store.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/stores/file_store.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/stores/publisher_store.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/stores/queue_store.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/swagger.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/api.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/auth.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/cache.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/chats.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/colors.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/commands.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/csv_utils.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/date_helpers.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/dbhelpers.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/emails.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/env.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/events.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/flask.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/fs.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/git.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/logs.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/monitoring.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/permissions.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/query.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/remote_job.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/shell.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/string.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/app/utils/thumbnail.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/cli.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/debug.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/event_stream.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/job_settings.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/README +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/alembic.ini +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/env.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/script.py.mako +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/utils/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/utils/base.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/003be8a91001_add_start_and_end_dates_to_projects.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/0596674df51d_add_department_mentions_to_comments.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/05ac7e8caa21_remove_unique_constraint_for_taskstatus_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/05b7dc79a416_add_archived_fields_to_main_tables.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/0cf5e0e035fa_drop_column_tasktype_for_shots.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/0ec3762a745d_add_attachment_table.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/0ef6416a507b_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/10cf267d95c9_fix_schedule_item.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/16328eae4b5f_add_new_constraint_for_timespent.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/16df47d76c64_add_some_indexes.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/17ef8f7be758_disallow_null_choicetype.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/1bb55759146f_add_table_studio.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/1cb44194db49_add_file_size_field_to_preview_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/1e150c2cea4d_add_nb_entities_out.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/1e2d77a2f0c4_add_hd_by_default_column.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/1fab8c420678_add_attachments_to_message_chats.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/20dfeb36142b_add_projecttaskstatuslink_roles_for_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/23122f290ca2_add_entity_chat_models.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/269d41bfb73f_add_entity_entity_links.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/29df910f04a4_create_unique_constraint_project_id_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/29fe01a6c9eb_add_status_automation_field.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/2adc020885fa_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/2baede80b111_add_entity_status_field.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/306266361f4f_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/328fd44c6347_add_entity_created_by.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/32f134ff1201_add_is_shared_flag_to_filters.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/346250b5304c_add_position_to_preview_files.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/3476e147e632_add_acks_to_comments.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/389cfb9de776_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/38baa9a23b3d_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/398150912a3f_validation_status_preview.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/3b0d1321079e_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/3d5c93bafb9d_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/3e0538ddf80f_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/3fee3bd10f9d_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/4095103c7d01_add_is_clients_isolated_flag_to_projects.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/40dea9555940_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/42ec83db6a01_change_person_preferred_two_factor_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/43d0cf0ed5e7_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/443d1e78a932_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/45c2de366e66_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/45dafbb3f4e1_for_person_contract_type_disallow_null.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/4715c2586036_add_last_preview_file_fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/4e3738cdc34c_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/4f2398ebcd49_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/523ee9647bee_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/54ee0d1d60ba_add_build_job_model.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/556526e47daa_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/57222395f2be_add_statusautomation_import_last_revision.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5798d2c9020b_change_person_role_to_choicetype.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/590aa1ffe731_add_notifications_enabled_flag.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5a291251823c_add_max_retake_parameter.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5ab9d7a75887_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5b0fcbb94f24_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5b7fa3e51701_add_is_client_allowed_flag_to_task_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5b980f0dc365_add_comment_links.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5b9fd9ddfe43_add_homepage_and_contract_fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5c0498e264bc_add_slack_fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/5e2ce62632a6_add_workflow_to_project.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/680c64565f9d_for_searchfiltergroup_is_shared.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/693cc511d28d_add_taskstatus_priority.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6aa446ee4072_add_is_for_all_flage_to_playlists.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6bd3b102d61b_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6c597e842afa_add_task_type_field_to_playlists.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6d1b2c60f58b_add_milestone_model.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6d7fa5a8e9a5_add_timesheets_locked_field_to_org.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6eeaff945706_add_data_field_on_entity_links.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/6f6049877105_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/7417c8eb70d8_add_for_entity_field_to_playlists.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/772a5e43f05b_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/7748d3d22925_add_columns_to_searchfilter_table_to_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/77d6820f494f_add_reply_to_notif.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/7b1f765677d8_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/7bc746997e8d_add_slack_token_field_to_organisation.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/7dc79d4ed7cd_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/818f7bda2528_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/82e7f7a95e84_add_project_id_to_events.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/82ee682204ab_add_is_generated_from_ldap_column_to_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/8588f254d6b8_add_archived_fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/8739ae9fa28b_add_for_client_field.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/87efceb6745b_add_ready_for_to_entity.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/892b264937ec_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/8a1b4a1b7f4a_add_totp_columns_for_person.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/8e4f39e321f4_add_day_off_table.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/8fbd40afbe5f_allow_to_set_float_values_for_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9010a64e5a2d_add_indices.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9060dd4f6116_notification_uc.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/925771029620_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/92b40d79ad3f_allow_message_attachments.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/92bdfe07e5f5_discord_integration.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/956659992419_add_columns_for_person_to_store_fido_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/96c79d31e648_add_mail_otp_columns_for_person.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/96f58a4a2a58_person_partial_index_for_email_only_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/971dbf5a0faf_add_short_name_for_asset_type_entity_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/98c90621cf58_add_for_client_flag_to_playlist.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/99825b9cc778_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9a09467f9b2c_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9b85c14fa8a7_add_day_off_new_columns.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9bd17364fc18_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9e5b3a9b0cee_add_new_column_metadatadescriptor_data_type_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/9f8445f9b42c_add_man_days_fields.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a23682ccc1f1_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a252a094e977_add_descriptions_for_entities_tasks_and_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a519c710877c_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a65bdadbae2f_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a66508788c53_add_nb_assets_ready.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a6c25eed3ea1_add_login_failed_attemps_and_last_login_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/a7c43f3fbc76_add_duration_column_to_the_preview_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/aa0a60033106_feedback_request.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/addbbefa7028_add_departments_link_to_metadata_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/ae0127f2fc56_add_previewfile_width_and_previewfile_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/af1790868e2c_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/b45cb782bb9c_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/b4dd0add5f79_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/b8c0a0f9d054_drop_task_status_is_reviewable.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/b8ed0fb263f8_add_person_jti_and_jti_expiration_date.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/b97a71306fc8_add_is_casting_standby_column_to_entity.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/be56dc0fb760_for_is_shared_disallow_nullable.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/bf1347acdee2_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/c49e41f1298b_add_previewbackground.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/c68c2a62cfac_add_mimetype_column_to_attachment.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/c726b98be194_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/c81f3e83bdb5_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/cf3d365de164_add_entity_version_model.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/cf6cec6d6bf5_add_status_field_to_preview_file.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/d80267806131_task_status_new_column_is_default.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/d8dcd5196d57_add_casting_label.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/de8a3de227ef_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/deeacd38d373_for_projecttaskstatuslink_set_default_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/df1834485f57_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/df9f8a147e80_change_file_size_to_big_integer.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/e1ef93f40d3d_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/e29638428dfd_add_schedule_item_table.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/e3f6db74cc1e_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/e839d6603c09_add_person_id_to_shot_history.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/ee2373fbe3a4_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f0567e8d0c62_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f0c6cbb61869_add_production_style_field.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f344b867a911_for_description_of_entity_task_working_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f4ff5a73d283_add_person_ldap_uid.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f5b113876a49_add_preferred_two_factor_authentication_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f5bdca075cdc_add_preview_download_flag_to_projects.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f874ad5e898a_add_link_entity_type_task_type.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/f995b28fb749_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/fb6b6f188497_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/fb87feaaa094_add_missing_unique_constraints.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/fc322f908695_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/fee7c696166e_.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/feffd3c5b806_introduce_concepts.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/remote/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/remote/config_payload.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/remote/normalize_movie.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/remote/playlist.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/utils/__init__.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou/utils/movie.py +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/dependency_links.txt +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/entry_points.txt +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/not-zip-safe +0 -0
- {zou-0.19.48 → zou-0.19.50}/zou.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zou
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.50
|
|
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
|
|
@@ -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.
|
|
43
|
+
Requires-Dist: gazu==0.10.13
|
|
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
|
|
@@ -81,15 +81,15 @@ Provides-Extra: test
|
|
|
81
81
|
Requires-Dist: fakeredis==2.23.3; extra == "test"
|
|
82
82
|
Requires-Dist: mixer==7.2.2; extra == "test"
|
|
83
83
|
Requires-Dist: pytest-cov==5.0.0; extra == "test"
|
|
84
|
-
Requires-Dist: pytest==8.3.
|
|
84
|
+
Requires-Dist: pytest==8.3.2; extra == "test"
|
|
85
85
|
Provides-Extra: monitoring
|
|
86
86
|
Requires-Dist: prometheus-flask-exporter==0.23.1; extra == "monitoring"
|
|
87
87
|
Requires-Dist: pygelf==0.4.2; extra == "monitoring"
|
|
88
|
-
Requires-Dist: sentry-sdk==2.
|
|
88
|
+
Requires-Dist: sentry-sdk==2.11.0; extra == "monitoring"
|
|
89
89
|
Provides-Extra: lint
|
|
90
90
|
Requires-Dist: autoflake==2.3.1; extra == "lint"
|
|
91
91
|
Requires-Dist: black==24.4.2; extra == "lint"
|
|
92
|
-
Requires-Dist: pre-commit==3.
|
|
92
|
+
Requires-Dist: pre-commit==3.8.0; python_version >= "3.9" and extra == "lint"
|
|
93
93
|
|
|
94
94
|
.. figure:: https://zou.cg-wire.com/kitsu.png
|
|
95
95
|
:alt: Kitsu Logo
|
|
@@ -46,7 +46,7 @@ install_requires =
|
|
|
46
46
|
flask-migrate==4.0.7
|
|
47
47
|
flask-socketio==5.3.6
|
|
48
48
|
flask==3.0.3
|
|
49
|
-
gazu==0.10.
|
|
49
|
+
gazu==0.10.13
|
|
50
50
|
gevent-websocket==0.10.1
|
|
51
51
|
gevent==24.2.1
|
|
52
52
|
gunicorn==22.0.0
|
|
@@ -95,15 +95,15 @@ test =
|
|
|
95
95
|
fakeredis==2.23.3
|
|
96
96
|
mixer==7.2.2
|
|
97
97
|
pytest-cov==5.0.0
|
|
98
|
-
pytest==8.3.
|
|
98
|
+
pytest==8.3.2
|
|
99
99
|
monitoring =
|
|
100
100
|
prometheus-flask-exporter==0.23.1
|
|
101
101
|
pygelf==0.4.2
|
|
102
|
-
sentry-sdk==2.
|
|
102
|
+
sentry-sdk==2.11.0
|
|
103
103
|
lint =
|
|
104
104
|
autoflake==2.3.1
|
|
105
105
|
black==24.4.2
|
|
106
|
-
pre-commit==3.
|
|
106
|
+
pre-commit==3.8.0; python_version >= '3.9'
|
|
107
107
|
|
|
108
108
|
[options.entry_points]
|
|
109
109
|
console_scripts =
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.19.50"
|
|
@@ -308,7 +308,7 @@ class PersonDurationTimeSpentsResource(Resource, ArgsMixin):
|
|
|
308
308
|
raise permissions.PermissionDenied
|
|
309
309
|
if permissions.has_supervisor_permissions():
|
|
310
310
|
department_ids = persons_service.get_current_user(
|
|
311
|
-
True
|
|
311
|
+
relations=True
|
|
312
312
|
)["departments"]
|
|
313
313
|
else:
|
|
314
314
|
raise permissions.PermissionDenied
|
|
@@ -533,7 +533,24 @@ class PersonDayTimeSpentsResource(PersonDurationTimeSpentsResource):
|
|
|
533
533
|
abort(404)
|
|
534
534
|
|
|
535
535
|
|
|
536
|
-
class
|
|
536
|
+
class PersonQuotaMixin:
|
|
537
|
+
|
|
538
|
+
def get_quota_arguments(self):
|
|
539
|
+
project_id = self.get_project_id()
|
|
540
|
+
task_type_id = self.get_task_type_id()
|
|
541
|
+
count_mode = self.get_text_parameter("count_mode", default="weigthed")
|
|
542
|
+
if count_mode not in ["weighted", "weighteddone", "feedback", "done"]:
|
|
543
|
+
raise WrongParameterException(
|
|
544
|
+
"count_mode must be equal to weighted, weigtheddone, feedback"
|
|
545
|
+
", or done"
|
|
546
|
+
)
|
|
547
|
+
feedback = "done" not in count_mode
|
|
548
|
+
weighted = "weighted" in count_mode
|
|
549
|
+
|
|
550
|
+
return (project_id, task_type_id, count_mode, feedback, weighted)
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
class PersonMonthQuotaShotsResource(Resource, ArgsMixin, PersonQuotaMixin):
|
|
537
554
|
"""
|
|
538
555
|
Get ended shots used for quota calculation of this month.
|
|
539
556
|
"""
|
|
@@ -564,6 +581,12 @@ class PersonMonthQuotaShotsResource(Resource, ArgsMixin):
|
|
|
564
581
|
x-example: 07
|
|
565
582
|
minimum: 1
|
|
566
583
|
maximum: 12
|
|
584
|
+
- in: query
|
|
585
|
+
name: count_mode
|
|
586
|
+
required: True
|
|
587
|
+
type: string
|
|
588
|
+
enum: [weighted, weigtheddone, feedback, done]
|
|
589
|
+
x-example: weighted
|
|
567
590
|
responses:
|
|
568
591
|
200:
|
|
569
592
|
description: Ended shots used for quota calculation of this month
|
|
@@ -571,10 +594,11 @@ class PersonMonthQuotaShotsResource(Resource, ArgsMixin):
|
|
|
571
594
|
description: Wrong date format
|
|
572
595
|
"""
|
|
573
596
|
user_service.check_person_is_not_bot(person_id)
|
|
574
|
-
project_id = self.get_project_id()
|
|
575
|
-
task_type_id = self.get_task_type_id()
|
|
576
597
|
user_service.check_person_access(person_id)
|
|
577
|
-
weighted =
|
|
598
|
+
(project_id, task_type_id, count_mode, feedback, weighted) = (
|
|
599
|
+
self.get_quota_arguments()
|
|
600
|
+
)
|
|
601
|
+
|
|
578
602
|
try:
|
|
579
603
|
return shots_service.get_month_quota_shots(
|
|
580
604
|
person_id,
|
|
@@ -583,12 +607,13 @@ class PersonMonthQuotaShotsResource(Resource, ArgsMixin):
|
|
|
583
607
|
project_id=project_id,
|
|
584
608
|
task_type_id=task_type_id,
|
|
585
609
|
weighted=weighted,
|
|
610
|
+
feedback=feedback,
|
|
586
611
|
)
|
|
587
612
|
except WrongDateFormatException:
|
|
588
613
|
abort(404)
|
|
589
614
|
|
|
590
615
|
|
|
591
|
-
class PersonWeekQuotaShotsResource(Resource, ArgsMixin):
|
|
616
|
+
class PersonWeekQuotaShotsResource(Resource, ArgsMixin, PersonQuotaMixin):
|
|
592
617
|
"""
|
|
593
618
|
Get ended shots used for quota calculation of this week.
|
|
594
619
|
"""
|
|
@@ -619,6 +644,12 @@ class PersonWeekQuotaShotsResource(Resource, ArgsMixin):
|
|
|
619
644
|
x-example: 35
|
|
620
645
|
minimum: 1
|
|
621
646
|
maximum: 52
|
|
647
|
+
- in: query
|
|
648
|
+
name: count_mode
|
|
649
|
+
required: True
|
|
650
|
+
type: string
|
|
651
|
+
enum: [weighted, weigtheddone, feedback, done]
|
|
652
|
+
x-example: weighted
|
|
622
653
|
responses:
|
|
623
654
|
200:
|
|
624
655
|
description: Ended shots used for quota calculation of this week
|
|
@@ -626,10 +657,11 @@ class PersonWeekQuotaShotsResource(Resource, ArgsMixin):
|
|
|
626
657
|
description: Wrong date format
|
|
627
658
|
"""
|
|
628
659
|
user_service.check_person_is_not_bot(person_id)
|
|
629
|
-
project_id = self.get_project_id()
|
|
630
|
-
task_type_id = self.get_task_type_id()
|
|
631
660
|
user_service.check_person_access(person_id)
|
|
632
|
-
weighted =
|
|
661
|
+
(project_id, task_type_id, count_mode, feedback, weighted) = (
|
|
662
|
+
self.get_quota_arguments()
|
|
663
|
+
)
|
|
664
|
+
|
|
633
665
|
try:
|
|
634
666
|
return shots_service.get_week_quota_shots(
|
|
635
667
|
person_id,
|
|
@@ -638,12 +670,13 @@ class PersonWeekQuotaShotsResource(Resource, ArgsMixin):
|
|
|
638
670
|
project_id=project_id,
|
|
639
671
|
task_type_id=task_type_id,
|
|
640
672
|
weighted=weighted,
|
|
673
|
+
feedback=feedback,
|
|
641
674
|
)
|
|
642
675
|
except WrongDateFormatException:
|
|
643
676
|
abort(404)
|
|
644
677
|
|
|
645
678
|
|
|
646
|
-
class PersonDayQuotaShotsResource(Resource, ArgsMixin):
|
|
679
|
+
class PersonDayQuotaShotsResource(Resource, ArgsMixin, PersonQuotaMixin):
|
|
647
680
|
"""
|
|
648
681
|
Get ended shots used for quota calculation of this day.
|
|
649
682
|
"""
|
|
@@ -681,6 +714,12 @@ class PersonDayQuotaShotsResource(Resource, ArgsMixin):
|
|
|
681
714
|
x-example: 12
|
|
682
715
|
minimum: 1
|
|
683
716
|
maximum: 31
|
|
717
|
+
- in: query
|
|
718
|
+
name: count_mode
|
|
719
|
+
required: True
|
|
720
|
+
type: string
|
|
721
|
+
enum: [weighted, weigtheddone, feedback, done]
|
|
722
|
+
x-example: weighted
|
|
684
723
|
responses:
|
|
685
724
|
200:
|
|
686
725
|
description: Ended shots used for quota calculation of this day
|
|
@@ -688,10 +727,11 @@ class PersonDayQuotaShotsResource(Resource, ArgsMixin):
|
|
|
688
727
|
description: Wrong date format
|
|
689
728
|
"""
|
|
690
729
|
user_service.check_person_is_not_bot(person_id)
|
|
691
|
-
project_id = self.get_project_id()
|
|
692
|
-
task_type_id = self.get_task_type_id()
|
|
693
730
|
user_service.check_person_access(person_id)
|
|
694
|
-
weighted =
|
|
731
|
+
(project_id, task_type_id, count_mode, feedback, weighted) = (
|
|
732
|
+
self.get_quota_arguments()
|
|
733
|
+
)
|
|
734
|
+
|
|
695
735
|
try:
|
|
696
736
|
return shots_service.get_day_quota_shots(
|
|
697
737
|
person_id,
|
|
@@ -701,6 +741,7 @@ class PersonDayQuotaShotsResource(Resource, ArgsMixin):
|
|
|
701
741
|
project_id=project_id,
|
|
702
742
|
task_type_id=task_type_id,
|
|
703
743
|
weighted=weighted,
|
|
744
|
+
feedback=feedback,
|
|
704
745
|
)
|
|
705
746
|
except WrongDateFormatException:
|
|
706
747
|
abort(404)
|
|
@@ -1507,6 +1507,18 @@ class ProjectQuotasResource(Resource, ArgsMixin):
|
|
|
1507
1507
|
type: string
|
|
1508
1508
|
format: UUID
|
|
1509
1509
|
x-example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1510
|
+
- in: query
|
|
1511
|
+
name: count_mode
|
|
1512
|
+
required: True
|
|
1513
|
+
type: string
|
|
1514
|
+
enum: [weighted, weigtheddone, feedback, done]
|
|
1515
|
+
x-example: weighted
|
|
1516
|
+
- in: query
|
|
1517
|
+
name: studio_id
|
|
1518
|
+
required: False
|
|
1519
|
+
type: string
|
|
1520
|
+
format: UUID
|
|
1521
|
+
x-example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1510
1522
|
responses:
|
|
1511
1523
|
200:
|
|
1512
1524
|
description: Quotas statistics for shots
|
|
@@ -1515,17 +1527,35 @@ class ProjectQuotasResource(Resource, ArgsMixin):
|
|
|
1515
1527
|
user_service.check_project_access(project_id)
|
|
1516
1528
|
args = self.get_args(
|
|
1517
1529
|
[
|
|
1518
|
-
("
|
|
1530
|
+
("count_mode", "weighted", False, str),
|
|
1519
1531
|
("studio_id", None, False, str),
|
|
1520
1532
|
]
|
|
1521
1533
|
)
|
|
1522
|
-
|
|
1534
|
+
count_mode = args["count_mode"]
|
|
1535
|
+
studio_id = args["studio_id"]
|
|
1536
|
+
|
|
1537
|
+
if count_mode not in ["weighted", "weighteddone", "feedback", "done"]:
|
|
1538
|
+
raise WrongParameterException(
|
|
1539
|
+
"count_mode must be equal to weighted, weigtheddone, feedback"
|
|
1540
|
+
", or done"
|
|
1541
|
+
)
|
|
1542
|
+
|
|
1543
|
+
feedback = "done" not in count_mode
|
|
1544
|
+
weighted = "weighted" in count_mode
|
|
1545
|
+
|
|
1546
|
+
if weighted:
|
|
1523
1547
|
return shots_service.get_weighted_quotas(
|
|
1524
|
-
project_id,
|
|
1548
|
+
project_id,
|
|
1549
|
+
task_type_id,
|
|
1550
|
+
feedback=feedback,
|
|
1551
|
+
studio_id=studio_id,
|
|
1525
1552
|
)
|
|
1526
1553
|
else:
|
|
1527
1554
|
return shots_service.get_raw_quotas(
|
|
1528
|
-
project_id,
|
|
1555
|
+
project_id,
|
|
1556
|
+
task_type_id,
|
|
1557
|
+
feedback=feedback,
|
|
1558
|
+
studio_id=studio_id,
|
|
1529
1559
|
)
|
|
1530
1560
|
|
|
1531
1561
|
|
|
@@ -42,6 +42,7 @@ class Task(db.Model, BaseMixin, SerializerMixin):
|
|
|
42
42
|
due_date = db.Column(db.DateTime)
|
|
43
43
|
real_start_date = db.Column(db.DateTime)
|
|
44
44
|
end_date = db.Column(db.DateTime)
|
|
45
|
+
done_date = db.Column(db.DateTime)
|
|
45
46
|
last_comment_date = db.Column(db.DateTime)
|
|
46
47
|
nb_assets_ready = db.Column(db.Integer, default=0)
|
|
47
48
|
data = db.Column(JSONB)
|
|
@@ -194,6 +194,7 @@ def get_assets_and_tasks(criterions={}, page=1, with_episode_ids=False):
|
|
|
194
194
|
Task.end_date,
|
|
195
195
|
Task.start_date,
|
|
196
196
|
Task.due_date,
|
|
197
|
+
Task.done_date,
|
|
197
198
|
Task.last_comment_date,
|
|
198
199
|
assignees_table.columns.person,
|
|
199
200
|
).order_by(EntityType.name, Entity.name)
|
|
@@ -272,6 +273,7 @@ def get_assets_and_tasks(criterions={}, page=1, with_episode_ids=False):
|
|
|
272
273
|
task_end_date,
|
|
273
274
|
task_start_date,
|
|
274
275
|
task_due_date,
|
|
276
|
+
task_done_date,
|
|
275
277
|
task_last_comment_date,
|
|
276
278
|
person_id,
|
|
277
279
|
) in query_result:
|
|
@@ -314,6 +316,7 @@ def get_assets_and_tasks(criterions={}, page=1, with_episode_ids=False):
|
|
|
314
316
|
task_dict = {
|
|
315
317
|
"id": task_id,
|
|
316
318
|
"due_date": fields.serialize_value(task_due_date),
|
|
319
|
+
"done_date": fields.serialize_value(task_done_date),
|
|
317
320
|
"duration": task_duration,
|
|
318
321
|
"entity_id": asset_id,
|
|
319
322
|
"estimation": task_estimation,
|
|
@@ -240,6 +240,7 @@ def get_entities_and_tasks(criterions={}):
|
|
|
240
240
|
Task.end_date,
|
|
241
241
|
Task.start_date,
|
|
242
242
|
Task.due_date,
|
|
243
|
+
Task.done_date,
|
|
243
244
|
Task.last_comment_date,
|
|
244
245
|
assignees_table.columns.person,
|
|
245
246
|
)
|
|
@@ -269,6 +270,7 @@ def get_entities_and_tasks(criterions={}):
|
|
|
269
270
|
task_end_date,
|
|
270
271
|
task_start_date,
|
|
271
272
|
task_due_date,
|
|
273
|
+
task_done_date,
|
|
272
274
|
task_last_comment_date,
|
|
273
275
|
person_id,
|
|
274
276
|
) in query.all():
|
|
@@ -305,6 +307,7 @@ def get_entities_and_tasks(criterions={}):
|
|
|
305
307
|
"entity_id": entity_id,
|
|
306
308
|
"end_date": task_end_date,
|
|
307
309
|
"due_date": task_due_date,
|
|
310
|
+
"done_date": task_done_date,
|
|
308
311
|
"duration": task_duration,
|
|
309
312
|
"is_subscribed": subscription_map.get(task_id, False),
|
|
310
313
|
"last_comment_date": task_last_comment_date,
|