zou 0.20.46__tar.gz → 0.20.48__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.20.46/zou.egg-info → zou-0.20.48}/PKG-INFO +1 -1
- zou-0.20.48/zou/__init__.py +1 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/projects/resources.py +10 -10
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/time_spents_service.py +10 -9
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/d80f02824047_add_plugin_revision.py +44 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e7e633bd6fa2_add_exceptions_to_budget_entries.py +2 -4
- {zou-0.20.46 → zou-0.20.48/zou.egg-info}/PKG-INFO +1 -1
- zou-0.20.46/zou/__init__.py +0 -1
- {zou-0.20.46 → zou-0.20.48}/LICENSE +0 -0
- {zou-0.20.46 → zou-0.20.48}/README.rst +0 -0
- {zou-0.20.46 → zou-0.20.48}/pyproject.toml +0 -0
- {zou-0.20.46 → zou-0.20.48}/setup.cfg +0 -0
- {zou-0.20.46 → zou-0.20.48}/setup.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/api.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/assets/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/assets/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/auth/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/auth/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/breakdown/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/breakdown/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/chats/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/chats/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/comments/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/comments/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/concepts/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/concepts/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/asset_instance.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/attachment_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/budget.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/budget_entry.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/chat.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/chat_message.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/comments.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/custom_action.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/day_off.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/department.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/entity.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/entity_link.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/entity_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/event.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/file_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/metadata_descriptor.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/milestone.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/news.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/notification.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/organisation.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/output_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/output_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/person.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/playlist.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/plugin.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/preview_background_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/preview_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/project.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/project_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/salary_scale.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/schedule_item.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/search_filter.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/search_filter_group.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/software.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/status_automation.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/studio.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/subscription.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/task.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/task_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/task_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/time_spent.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/crud/working_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/edits/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/edits/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/entities/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/entities/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/events/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/events/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/assets.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/casting.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/edits.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/persons.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/playlists.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/projects.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/shots.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/task_types.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/tasks.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/export/csv/time_spents.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/files/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/files/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/index/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/index/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/news/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/news/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/persons/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/persons/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/playlists/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/playlists/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/previews/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/previews/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/projects/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/search/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/search/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/shots/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/shots/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/assets.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/casting.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/edits.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/persons.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/shots.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/csv/task_type_estimations.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/kitsu.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/otio.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/assets.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/episode.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/exception.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/import_errors.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/notes.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/person.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/project.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/scene.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/sequence.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/shot.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/steps.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/tasks.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/team.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/source/shotgun/versions.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/tasks/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/tasks/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/user/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/blueprints/user/resources.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/config.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/file_trees/default.json +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/file_trees/simple.json +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/indexer/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/indexer/indexing.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/mixin.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/asset_instance.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/attachment_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/budget.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/budget_entry.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/build_job.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/chat.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/chat_message.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/comment.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/custom_action.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/data_import_error.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/day_off.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/department.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/desktop_login_log.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/entity.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/entity_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/event.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/file_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/login_log.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/metadata_descriptor.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/milestone.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/news.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/notification.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/organisation.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/output_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/output_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/person.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/playlist.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/plugin.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/preview_background_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/preview_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/project.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/project_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/salary_scale.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/schedule_item.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/search_filter.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/search_filter_group.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/serializer.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/software.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/status_automation.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/studio.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/subscription.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/task.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/task_status.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/task_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/time_spent.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/models/working_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/assets_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/auth_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/backup_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/base_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/breakdown_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/budget_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/chats_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/comments_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/concepts_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/custom_actions_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/deletion_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/edits_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/emails_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/entities_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/events_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/exception.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/file_tree_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/files_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/index_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/names_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/news_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/notifications_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/persons_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/playlists_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/plugins_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/preview_files_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/projects_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/scenes_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/schedule_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/shots_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/stats_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/status_automations_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/sync_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/tasks_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/telemetry_services.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/services/user_service.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/stores/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/stores/auth_tokens_store.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/stores/file_store.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/stores/publisher_store.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/stores/queue_store.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/swagger.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/api.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/auth.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/cache.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/chats.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/colors.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/commands.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/csv_utils.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/date_helpers.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/dbhelpers.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/emails.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/env.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/events.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/fido.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/flask.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/fs.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/git.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/logs.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/monitoring.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/permissions.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/plugins.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/query.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/redis.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/remote_job.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/saml.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/shell.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/string.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/app/utils/thumbnail.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/cli.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/debug.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/event_stream.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/job_settings.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/README +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/alembic.ini +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/env.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/script.py.mako +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/utils/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/utils/base.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/003be8a91001_add_start_and_end_dates_to_projects.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/0596674df51d_add_department_mentions_to_comments.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/05ac7e8caa21_remove_unique_constraint_for_taskstatus_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/05b7dc79a416_add_archived_fields_to_main_tables.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/06552e22f9e7_add_comment_updated_by.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/0cf5e0e035fa_drop_column_tasktype_for_shots.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/0ec3762a745d_add_attachment_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/0ef6416a507b_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/10cf267d95c9_fix_schedule_item.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/16328eae4b5f_add_new_constraint_for_timespent.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/16df47d76c64_add_some_indexes.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/17ef8f7be758_disallow_null_choicetype.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/1bb55759146f_add_table_studio.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/1cb44194db49_add_file_size_field_to_preview_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/1e150c2cea4d_add_nb_entities_out.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/1e2d77a2f0c4_add_hd_by_default_column.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/1fab8c420678_add_attachments_to_message_chats.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/20a8ad264659_tasktypeassettypelink_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/20dfeb36142b_add_projecttaskstatuslink_roles_for_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/23122f290ca2_add_entity_chat_models.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/269d41bfb73f_add_entity_entity_links.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/2762a797f1f9_add_people_salary_information.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/29df910f04a4_create_unique_constraint_project_id_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/29fe01a6c9eb_add_status_automation_field.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/2adc020885fa_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/2baede80b111_add_entity_status_field.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/306266361f4f_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/307edd8c639d_change_comment_updated_by_in_comment_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/328fd44c6347_add_entity_created_by.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/32f134ff1201_add_is_shared_flag_to_filters.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/346250b5304c_add_position_to_preview_files.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/3476e147e632_add_acks_to_comments.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/389cfb9de776_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/38baa9a23b3d_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/398150912a3f_validation_status_preview.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/3b0d1321079e_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/3d5c93bafb9d_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/3e0538ddf80f_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/3fee3bd10f9d_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/4095103c7d01_add_is_clients_isolated_flag_to_projects.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/40dea9555940_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/42ec83db6a01_change_person_preferred_two_factor_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/43d0cf0ed5e7_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/443d1e78a932_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/45c2de366e66_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/45dafbb3f4e1_for_person_contract_type_disallow_null.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/45f739ef962a_add_people_salary_scale_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/4715c2586036_add_last_preview_file_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/4aab1f84ad72_introduce_plugin_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/4e3738cdc34c_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/4f2398ebcd49_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/523ee9647bee_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/539a3a00c417_for_departmentlink_index_person_id_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/54ee0d1d60ba_add_build_job_model.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/556526e47daa_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/57222395f2be_add_statusautomation_import_last_revision.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5798d2c9020b_change_person_role_to_choicetype.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/590aa1ffe731_add_notifications_enabled_flag.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/59a7445a966c_add_entity_is_shared.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5a291251823c_add_max_retake_parameter.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5ab9d7a75887_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5b0fcbb94f24_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5b7fa3e51701_add_is_client_allowed_flag_to_task_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5b980f0dc365_add_comment_links.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5b9fd9ddfe43_add_homepage_and_contract_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5c0498e264bc_add_slack_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/5e2ce62632a6_add_workflow_to_project.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/680c64565f9d_for_searchfiltergroup_is_shared.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/693cc511d28d_add_taskstatus_priority.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6aa446ee4072_add_is_for_all_flage_to_playlists.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6bd3b102d61b_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6c597e842afa_add_task_type_field_to_playlists.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6d1b2c60f58b_add_milestone_model.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6d7fa5a8e9a5_add_timesheets_locked_field_to_org.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6eeaff945706_add_data_field_on_entity_links.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/6f6049877105_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7417c8eb70d8_add_for_entity_field_to_playlists.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/772a5e43f05b_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7748d3d22925_add_columns_to_searchfilter_table_to_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/77d6820f494f_add_reply_to_notif.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7a16258f2fab_add_currency_field_to_budgets.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7b1f765677d8_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7bc746997e8d_add_slack_token_field_to_organisation.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/7dc79d4ed7cd_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/818f7bda2528_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/82e7f7a95e84_add_project_id_to_events.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/82ee682204ab_add_is_generated_from_ldap_column_to_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/83e2f33a9b14_add_project_bugdet_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8588f254d6b8_add_archived_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8739ae9fa28b_add_for_client_field.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/87efceb6745b_add_ready_for_to_entity.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/892b264937ec_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8a1b4a1b7f4a_add_totp_columns_for_person.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8ab98c178903_add_budget_entry_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8e4f39e321f4_add_day_off_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8e67c183bed7_add_preference_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/8fbd40afbe5f_allow_to_set_float_values_for_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9010a64e5a2d_add_indices.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9060dd4f6116_notification_uc.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/925771029620_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/92b40d79ad3f_allow_message_attachments.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/92bdfe07e5f5_discord_integration.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/956659992419_add_columns_for_person_to_store_fido_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/96c79d31e648_add_mail_otp_columns_for_person.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/96f58a4a2a58_person_partial_index_for_email_only_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/971dbf5a0faf_add_short_name_for_asset_type_entity_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/98c90621cf58_add_for_client_flag_to_playlist.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/99825b9cc778_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9a09467f9b2c_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9b85c14fa8a7_add_day_off_new_columns.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9bd17364fc18_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9d3bb33c6fc6_add_department_keys_to_filter_models.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9e5b3a9b0cee_add_new_column_metadatadescriptor_data_type_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/9f8445f9b42c_add_man_days_fields.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a23682ccc1f1_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a252a094e977_add_descriptions_for_entities_tasks_and_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a519c710877c_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a65bdadbae2f_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a66508788c53_add_nb_assets_ready.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a6c25eed3ea1_add_login_failed_attemps_and_last_login_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/a7c43f3fbc76_add_duration_column_to_the_preview_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/aa0a60033106_feedback_request.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/addbad59c706_allow_to_manage_drawings_instead_of_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/addbbefa7028_add_departments_link_to_metadata_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/ae0127f2fc56_add_previewfile_width_and_previewfile_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/af1790868e2c_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/b45cb782bb9c_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/b4dd0add5f79_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/b8c0a0f9d054_drop_task_status_is_reviewable.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/b8ed0fb263f8_add_person_jti_and_jti_expiration_date.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/b97a71306fc8_add_is_casting_standby_column_to_entity.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/be56dc0fb760_for_is_shared_disallow_nullable.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/bf1347acdee2_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/c49e41f1298b_add_previewbackground.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/c68c2a62cfac_add_mimetype_column_to_attachment.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/c726b98be194_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/c81f3e83bdb5_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/ca28796a2a62_add_is_done_field_to_the_task_model.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/cf3d365de164_add_entity_version_model.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/cf6cec6d6bf5_add_status_field_to_preview_file.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/d25118cddcaa_modify_salary_scale_model.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/d80267806131_task_status_new_column_is_default.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/d8dcd5196d57_add_casting_label.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/de8a3de227ef_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/deeacd38d373_for_projecttaskstatuslink_set_default_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/df1834485f57_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/df9f8a147e80_change_file_size_to_big_integer.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e1ef93f40d3d_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e29638428dfd_add_schedule_item_table.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e3f6db74cc1e_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e839d6603c09_add_person_id_to_shot_history.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/ee2373fbe3a4_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f0567e8d0c62_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f0c6cbb61869_add_production_style_field.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f344b867a911_for_description_of_entity_task_working_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f4ff5a73d283_add_person_ldap_uid.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f5b113876a49_add_preferred_two_factor_authentication_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f5bdca075cdc_add_preview_download_flag_to_projects.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f874ad5e898a_add_link_entity_type_task_type.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/f995b28fb749_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/fb6b6f188497_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/fb87feaaa094_add_missing_unique_constraints.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/fba149993140_add_missing_index.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/fc322f908695_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/fee7c696166e_.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/feffd3c5b806_introduce_concepts.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/migrations/alembic.ini +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/migrations/env.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/migrations/script.py.mako +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/models.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/plugin_template/routes.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/remote/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/remote/config_payload.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/remote/normalize_movie.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/remote/playlist.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/utils/__init__.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou/utils/movie.py +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/SOURCES.txt +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/dependency_links.txt +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/entry_points.txt +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/not-zip-safe +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/requires.txt +0 -0
- {zou-0.20.46 → zou-0.20.48}/zou.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.20.48"
|
|
@@ -1509,20 +1509,20 @@ class ProductionMonthTimeSpentsResource(Resource, ArgsMixin):
|
|
|
1509
1509
|
- Projects
|
|
1510
1510
|
parameters:
|
|
1511
1511
|
- in: path
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1512
|
+
name: project_id
|
|
1513
|
+
required: True
|
|
1514
|
+
type: string
|
|
1515
|
+
format: UUID
|
|
1516
|
+
x-example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1517
1517
|
responses:
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1518
|
+
200:
|
|
1519
|
+
description: Aggregated time spents for given person and month
|
|
1520
|
+
400:
|
|
1521
|
+
description: Wrong ID format
|
|
1522
1522
|
"""
|
|
1523
1523
|
permissions.check_admin_permissions()
|
|
1524
1524
|
self.check_id_parameter(project_id)
|
|
1525
1525
|
user = persons_service.get_current_user()
|
|
1526
1526
|
return time_spents_service.get_project_month_time_spents(
|
|
1527
1527
|
project_id, user["timezone"]
|
|
1528
|
-
)
|
|
1528
|
+
)
|
|
@@ -545,8 +545,7 @@ def get_project_month_time_spents(project_id, timezone=None):
|
|
|
545
545
|
"""
|
|
546
546
|
data = {}
|
|
547
547
|
query = (
|
|
548
|
-
TimeSpent.query
|
|
549
|
-
.join(Task)
|
|
548
|
+
TimeSpent.query.join(Task)
|
|
550
549
|
.join(TaskType, TaskType.id == Task.task_type_id)
|
|
551
550
|
.join(Department, Department.id == TaskType.department_id)
|
|
552
551
|
.filter(Task.project_id == project_id)
|
|
@@ -559,15 +558,17 @@ def get_project_month_time_spents(project_id, timezone=None):
|
|
|
559
558
|
time_spent.date, timezone
|
|
560
559
|
)[0:7]
|
|
561
560
|
if department_id not in data:
|
|
562
|
-
data[department_id] = {
|
|
561
|
+
data[department_id] = {"total": 0}
|
|
563
562
|
if time_spent.person_id not in data[department_id]:
|
|
564
|
-
data[department_id][time_spent.person_id] = {
|
|
563
|
+
data[department_id][time_spent.person_id] = {"total": 0}
|
|
565
564
|
if date_key not in data[department_id][time_spent.person_id]:
|
|
566
565
|
data[department_id][time_spent.person_id][date_key] = 0
|
|
567
566
|
|
|
568
|
-
data[department_id][time_spent.person_id][
|
|
569
|
-
|
|
567
|
+
data[department_id][time_spent.person_id][
|
|
568
|
+
date_key
|
|
569
|
+
] += time_spent.duration
|
|
570
570
|
data[department_id]["total"] += time_spent.duration
|
|
571
|
-
data[department_id][time_spent.person_id][
|
|
572
|
-
|
|
573
|
-
|
|
571
|
+
data[department_id][time_spent.person_id][
|
|
572
|
+
"total"
|
|
573
|
+
] += time_spent.duration
|
|
574
|
+
return data
|
|
@@ -8,6 +8,12 @@ Create Date: 2025-05-02 16:08:57.078114
|
|
|
8
8
|
|
|
9
9
|
from alembic import op
|
|
10
10
|
import sqlalchemy as sa
|
|
11
|
+
from alembic import op
|
|
12
|
+
import sqlalchemy as sa
|
|
13
|
+
from zou.migrations.utils.base import BaseMixin
|
|
14
|
+
from sqlalchemy.ext.declarative import declarative_base
|
|
15
|
+
from sqlalchemy.dialects.postgresql import JSONB
|
|
16
|
+
from sqlalchemy.orm.session import Session
|
|
11
17
|
|
|
12
18
|
|
|
13
19
|
# revision identifiers, used by Alembic.
|
|
@@ -16,6 +22,37 @@ down_revision = "e7e633bd6fa2"
|
|
|
16
22
|
branch_labels = None
|
|
17
23
|
depends_on = None
|
|
18
24
|
|
|
25
|
+
base = declarative_base()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Task(base, BaseMixin):
|
|
29
|
+
"""
|
|
30
|
+
Describes a task done by a CG artist on an entity of the CG production.
|
|
31
|
+
The task has a state and assigned to people. It handles notion of time like
|
|
32
|
+
duration, start date and end date.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
__tablename__ = "task"
|
|
36
|
+
name = sa.Column(sa.String(80), nullable=False)
|
|
37
|
+
description = sa.Column(sa.Text())
|
|
38
|
+
|
|
39
|
+
priority = sa.Column(sa.Integer, default=0)
|
|
40
|
+
difficulty = sa.Column(sa.Integer, default=3, nullable=False)
|
|
41
|
+
duration = sa.Column(sa.Float, default=0)
|
|
42
|
+
estimation = sa.Column(sa.Float, default=0)
|
|
43
|
+
completion_rate = sa.Column(sa.Integer, default=0)
|
|
44
|
+
retake_count = sa.Column(sa.Integer, default=0)
|
|
45
|
+
sort_order = sa.Column(sa.Integer, default=0)
|
|
46
|
+
start_date = sa.Column(sa.DateTime)
|
|
47
|
+
due_date = sa.Column(sa.DateTime)
|
|
48
|
+
real_start_date = sa.Column(sa.DateTime)
|
|
49
|
+
end_date = sa.Column(sa.DateTime)
|
|
50
|
+
done_date = sa.Column(sa.DateTime)
|
|
51
|
+
last_comment_date = sa.Column(sa.DateTime)
|
|
52
|
+
nb_assets_ready = sa.Column(sa.Integer, default=0)
|
|
53
|
+
data = sa.Column(JSONB)
|
|
54
|
+
nb_drawings = sa.Column(sa.Integer, default=0)
|
|
55
|
+
|
|
19
56
|
|
|
20
57
|
def upgrade():
|
|
21
58
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
@@ -33,6 +70,13 @@ def upgrade():
|
|
|
33
70
|
)
|
|
34
71
|
|
|
35
72
|
with op.batch_alter_table("task", schema=None) as batch_op:
|
|
73
|
+
session = Session(bind=op.get_bind())
|
|
74
|
+
session.query(Task).where(Task.difficulty == None).update(
|
|
75
|
+
{
|
|
76
|
+
Task.difficulty: 3,
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
session.commit()
|
|
36
80
|
batch_op.alter_column(
|
|
37
81
|
"difficulty",
|
|
38
82
|
existing_type=sa.INTEGER(),
|
{zou-0.20.46 → zou-0.20.48}/zou/migrations/versions/e7e633bd6fa2_add_exceptions_to_budget_entries.py
RENAMED
|
@@ -32,8 +32,6 @@ def upgrade():
|
|
|
32
32
|
|
|
33
33
|
def downgrade():
|
|
34
34
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
35
|
-
with op.batch_alter_table("
|
|
36
|
-
batch_op.
|
|
37
|
-
"difficulty", existing_type=sa.INTEGER(), nullable=True
|
|
38
|
-
)
|
|
35
|
+
with op.batch_alter_table("budget_entry", schema=None) as batch_op:
|
|
36
|
+
batch_op.drop_column("exceptions")
|
|
39
37
|
# ### end Alembic commands ###
|
zou-0.20.46/zou/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.20.46"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|