zou 1.0.5__tar.gz → 1.0.6__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-1.0.5/zou.egg-info → zou-1.0.6}/PKG-INFO +1 -1
- zou-1.0.6/zou/__init__.py +1 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/persons/resources.py +7 -5
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/base.py +4 -3
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/deletion_service.py +3 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/time_spents_service.py +4 -1
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/user_service.py +2 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/stores/file_store.py +29 -2
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/fs.py +27 -5
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/plugins.py +8 -1
- {zou-1.0.5 → zou-1.0.6/zou.egg-info}/PKG-INFO +1 -1
- zou-1.0.5/zou/__init__.py +0 -1
- {zou-1.0.5 → zou-1.0.6}/LICENSE +0 -0
- {zou-1.0.5 → zou-1.0.6}/README.rst +0 -0
- {zou-1.0.5 → zou-1.0.6}/pyproject.toml +0 -0
- {zou-1.0.5 → zou-1.0.6}/setup.cfg +0 -0
- {zou-1.0.5 → zou-1.0.6}/setup.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/api.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/assets/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/assets/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/auth/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/auth/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/breakdown/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/breakdown/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/chats/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/chats/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/comments/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/comments/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/concepts/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/concepts/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/asset_instance.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/attachment_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/base.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/budget.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/budget_entry.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/chat.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/chat_message.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/comments.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/custom_action.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/day_off.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/department.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/entity.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/entity_link.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/entity_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/event.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/file_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/hardware_item.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/metadata_descriptor.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/milestone.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/news.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/notification.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/organisation.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/output_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/output_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/person.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/playlist.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/plugin.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/preview_background_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/preview_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/production_schedule_version.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/project.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/project_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/salary_scale.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/schedule_item.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/search_filter.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/search_filter_group.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/software.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/status_automation.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/studio.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/subscription.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/task.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/task_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/task_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/time_spent.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/crud/working_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/departments/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/departments/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/edits/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/edits/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/entities/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/entities/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/events/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/events/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/assets.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/base.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/casting.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/edits.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/persons.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/playlists.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/projects.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/shots.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/task_types.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/tasks.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/export/csv/time_spents.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/files/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/files/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/index/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/index/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/news/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/news/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/persons/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/playlists/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/playlists/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/previews/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/previews/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/projects/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/projects/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/search/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/search/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/shots/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/shots/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/assets.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/casting.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/edits.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/persons.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/shots.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/csv/task_type_estimations.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/kitsu.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/otio.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/assets.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/base.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/episode.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/exception.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/import_errors.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/notes.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/person.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/project.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/scene.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/sequence.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/shot.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/steps.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/tasks.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/team.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/source/shotgun/versions.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/tasks/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/tasks/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/user/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/blueprints/user/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/config.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/file_trees/default.json +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/file_trees/simple.json +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/indexer/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/indexer/indexing.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/mixin.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/asset_instance.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/attachment_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/base.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/budget.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/budget_entry.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/build_job.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/chat.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/chat_message.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/comment.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/custom_action.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/data_import_error.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/day_off.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/department.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/desktop_login_log.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/entity.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/entity_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/event.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/file_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/hardware_item.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/login_log.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/metadata_descriptor.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/milestone.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/news.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/notification.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/organisation.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/output_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/output_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/person.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/playlist.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/plugin.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/preview_background_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/preview_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/production_schedule_version.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/project.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/project_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/salary_scale.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/schedule_item.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/search_filter.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/search_filter_group.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/serializer.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/software.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/status_automation.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/studio.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/subscription.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/task.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/task_status.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/task_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/time_spent.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/models/working_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/assets_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/auth_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/backup_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/base_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/breakdown_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/budget_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/chats_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/comments_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/concepts_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/custom_actions_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/departments_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/edits_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/emails_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/entities_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/events_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/exception.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/file_tree_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/files_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/index_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/names_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/news_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/notifications_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/persons_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/playlists_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/plugins_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/preview_files_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/projects_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/scenes_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/schedule_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/shots_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/stats_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/status_automations_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/sync_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/tasks_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/telemetry_services.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/services/templates_service.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/stores/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/stores/auth_tokens_store.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/stores/publisher_store.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/stores/queue_store.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/swagger.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/api.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/auth.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/cache.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/chats.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/colors.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/commands.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/csv_utils.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/date_helpers.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/dbhelpers.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/emails.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/env.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/events.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/fido.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/flask.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/git.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/logs.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/monitoring.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/permissions.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/query.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/redis.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/remote_job.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/saml.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/shell.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/string.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/app/utils/thumbnail.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/cli.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/debug.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/event_stream.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/job_settings.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/README +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/alembic.ini +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/env.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/script.py.mako +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/utils/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/utils/base.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/003be8a91001_add_start_and_end_dates_to_projects.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0596674df51d_add_department_mentions_to_comments.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/05ac7e8caa21_remove_unique_constraint_for_taskstatus_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/05b7dc79a416_add_archived_fields_to_main_tables.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/06552e22f9e7_add_comment_updated_by.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0bd1e89f2a6f_add_productionscheduleversiontasklink_uc.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0c05b22194f3_add_performance_indexes.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0cf5e0e035fa_drop_column_tasktype_for_shots.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0ec3762a745d_add_attachment_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/0ef6416a507b_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/10cf267d95c9_fix_schedule_item.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/12208e50bf18_add_json_data_field_to_preview_files.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/16328eae4b5f_add_new_constraint_for_timespent.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/16df47d76c64_add_some_indexes.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/17ef8f7be758_disallow_null_choicetype.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1b0ab951adca_add_reply_id_to_attachments.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1bb55759146f_add_table_studio.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1cb44194db49_add_file_size_field_to_preview_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1e150c2cea4d_add_nb_entities_out.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1e2d77a2f0c4_add_hd_by_default_column.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/1fab8c420678_add_attachments_to_message_chats.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/20a8ad264659_tasktypeassettypelink_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/20dfeb36142b_add_projecttaskstatuslink_roles_for_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/23122f290ca2_add_entity_chat_models.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/269d41bfb73f_add_entity_entity_links.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/26f96f65cfa3_add_productionversionschedule_uc.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/2762a797f1f9_add_people_salary_information.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/29df910f04a4_create_unique_constraint_project_id_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/29fe01a6c9eb_add_status_automation_field.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/2adc020885fa_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/2baede80b111_add_entity_status_field.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/306266361f4f_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/307edd8c639d_change_comment_updated_by_in_comment_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/328fd44c6347_add_entity_created_by.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/32f134ff1201_add_is_shared_flag_to_filters.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/346250b5304c_add_position_to_preview_files.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3476e147e632_add_acks_to_comments.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/35ebb38695cd_add_icon_field_to_plugins.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/389cfb9de776_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/38baa9a23b3d_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/398150912a3f_validation_status_preview.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3b0d1321079e_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3d5c93bafb9d_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3d8e68dffeee_fix_task_person_link.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3e0538ddf80f_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/3fee3bd10f9d_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4095103c7d01_add_is_clients_isolated_flag_to_projects.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/40dea9555940_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/42ec83db6a01_change_person_preferred_two_factor_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4368137b44e1_productionscheduleversion_add_on_delete_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/43d0cf0ed5e7_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/443d1e78a932_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/45c2de366e66_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/45dafbb3f4e1_for_person_contract_type_disallow_null.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/45f739ef962a_add_people_salary_scale_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4715c2586036_add_last_preview_file_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4aab1f84ad72_introduce_plugin_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4bd9bfb73f11_add_fields_to_the_software_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4d585b6956f2_add_taskstatus_is_wip.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4e3738cdc34c_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/4f2398ebcd49_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/523ee9647bee_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/539a3a00c417_for_departmentlink_index_person_id_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/54ee0d1d60ba_add_build_job_model.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/556526e47daa_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/57222395f2be_add_statusautomation_import_last_revision.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5798d2c9020b_change_person_role_to_choicetype.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/590aa1ffe731_add_notifications_enabled_flag.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/59a7445a966c_add_entity_is_shared.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5a291251823c_add_max_retake_parameter.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5ab9d7a75887_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5b0fcbb94f24_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5b7fa3e51701_add_is_client_allowed_flag_to_task_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5b980f0dc365_add_comment_links.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5b9fd9ddfe43_add_homepage_and_contract_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5c0498e264bc_add_slack_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5e2ce62632a6_add_workflow_to_project.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5f1620d191af_add_playlist_id_field_to_notification.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/5f715f2b6348_add_new_table_productionscheduleversion.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/680c64565f9d_for_searchfiltergroup_is_shared.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/693cc511d28d_add_taskstatus_priority.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6aa446ee4072_add_is_for_all_flage_to_playlists.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6bd3b102d61b_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6c597e842afa_add_task_type_field_to_playlists.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6d1b2c60f58b_add_milestone_model.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6d7fa5a8e9a5_add_timesheets_locked_field_to_org.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6eeaff945706_add_data_field_on_entity_links.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/6f6049877105_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/71d546ace0ee_add_performance_indexes.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7417c8eb70d8_add_for_entity_field_to_playlists.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/772a5e43f05b_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7748d3d22925_add_columns_to_searchfilter_table_to_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/77d6820f494f_add_reply_to_notif.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7a16258f2fab_add_currency_field_to_budgets.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7b1f765677d8_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7bc746997e8d_add_slack_token_field_to_organisation.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/7dc79d4ed7cd_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/818f7bda2528_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/82e7f7a95e84_add_project_id_to_events.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/82ee682204ab_add_is_generated_from_ldap_column_to_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/83e2f33a9b14_add_project_bugdet_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8588f254d6b8_add_archived_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8739ae9fa28b_add_for_client_field.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/87efceb6745b_add_ready_for_to_entity.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/892b264937ec_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8a1b4a1b7f4a_add_totp_columns_for_person.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8ab98c178903_add_budget_entry_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8e4f39e321f4_add_day_off_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8e67c183bed7_add_preference_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/8fbd40afbe5f_allow_to_set_float_values_for_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9010a64e5a2d_add_indices.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9060dd4f6116_notification_uc.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/925771029620_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/92b40d79ad3f_allow_message_attachments.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/92bdfe07e5f5_discord_integration.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/956659992419_add_columns_for_person_to_store_fido_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9683bd840dee_add_archived_field_to_software.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/96c79d31e648_add_mail_otp_columns_for_person.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/96f58a4a2a58_person_partial_index_for_email_only_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/971dbf5a0faf_add_short_name_for_asset_type_entity_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/98c90621cf58_add_for_client_flag_to_playlist.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/99825b9cc778_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9a09467f9b2c_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9a9df20ea5a7_add_frontend_options_to_plugins.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9af2df17a9d5_add_hardware_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9b85c14fa8a7_add_day_off_new_columns.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9bd17364fc18_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9d3bb33c6fc6_add_department_keys_to_filter_models.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9e5b3a9b0cee_add_new_column_metadatadescriptor_data_type_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/9f8445f9b42c_add_man_days_fields.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a0f668430352_add_created_by_field_to_playlists.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a23682ccc1f1_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a252a094e977_add_descriptions_for_entities_tasks_and_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a519c710877c_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a65bdadbae2f_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a66508788c53_add_nb_assets_ready.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a6c25eed3ea1_add_login_failed_attemps_and_last_login_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/a7c43f3fbc76_add_duration_column_to_the_preview_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/aa0a60033106_feedback_request.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/addbad59c706_allow_to_manage_drawings_instead_of_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/addbbefa7028_add_departments_link_to_metadata_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/ae0127f2fc56_add_previewfile_width_and_previewfile_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/af1790868e2c_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/b45cb782bb9c_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/b4dd0add5f79_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/b8c0a0f9d054_drop_task_status_is_reviewable.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/b8ed0fb263f8_add_person_jti_and_jti_expiration_date.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/b97a71306fc8_add_is_casting_standby_column_to_entity.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/be56dc0fb760_for_is_shared_disallow_nullable.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/bf1347acdee2_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/c49e41f1298b_add_previewbackground.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/c68c2a62cfac_add_mimetype_column_to_attachment.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/c726b98be194_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/c81f3e83bdb5_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/ca28796a2a62_add_is_done_field_to_the_task_model.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/ce7f46f445dc_add_column_estimation_for_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/cf3d365de164_add_entity_version_model.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/cf6cec6d6bf5_add_status_field_to_preview_file.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d25118cddcaa_modify_salary_scale_model.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d5665dca188b_add_version_field_to_software.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d80267806131_task_status_new_column_is_default.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d80f02824047_add_plugin_revision.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d8dcd5196d57_add_casting_label.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/d97f2730bf7b_add_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/dde6be40f54f_add_departement_links_tables_for_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/de8a3de227ef_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/deeacd38d373_for_projecttaskstatuslink_set_default_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/df1834485f57_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/df9f8a147e80_change_file_size_to_big_integer.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e1ef93f40d3d_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e29638428dfd_add_schedule_item_table.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e3f6db74cc1e_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e4b48ca33539_add_project_production_schedule_version_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e7e633bd6fa2_add_exceptions_to_budget_entries.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e839d6603c09_add_person_id_to_shot_history.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/e8bc24998b34_remove_on_delete_cascade_for_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/ee2373fbe3a4_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f0567e8d0c62_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f0c6cbb61869_add_production_style_field.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f344b867a911_for_description_of_entity_task_working_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f4ff5a73d283_add_person_ldap_uid.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f5b113876a49_add_preferred_two_factor_authentication_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f5bdca075cdc_add_preview_download_flag_to_projects.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f874ad5e898a_add_link_entity_type_task_type.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/f995b28fb749_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/fb6b6f188497_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/fb87feaaa094_add_missing_unique_constraints.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/fba149993140_add_missing_index.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/fc322f908695_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/fee7c696166e_.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/feffd3c5b806_introduce_concepts.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/migrations/alembic.ini +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/migrations/env.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/migrations/script.py.mako +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/models.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/plugin_template/resources.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/remote/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/remote/config_payload.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/remote/normalize_movie.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/remote/playlist.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/utils/__init__.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou/utils/movie.py +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/SOURCES.txt +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/dependency_links.txt +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/entry_points.txt +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/not-zip-safe +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/requires.txt +0 -0
- {zou-1.0.5 → zou-1.0.6}/zou.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.0.6"
|
|
@@ -672,7 +672,7 @@ class PersonMonthAllTimeSpentsResource(Resource):
|
|
|
672
672
|
)
|
|
673
673
|
return fields.serialize_list(timespents)
|
|
674
674
|
except WrongDateFormatException:
|
|
675
|
-
|
|
675
|
+
raise WrongParameterException("Invalid month or year.")
|
|
676
676
|
|
|
677
677
|
|
|
678
678
|
class PersonWeekTimeSpentsResource(PersonDurationTimeSpentsResource):
|
|
@@ -1160,10 +1160,12 @@ class TimeSpentMonthResource(TimeSpentDurationResource):
|
|
|
1160
1160
|
schema:
|
|
1161
1161
|
type: object
|
|
1162
1162
|
"""
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1163
|
+
try:
|
|
1164
|
+
return time_spents_service.get_day_table(
|
|
1165
|
+
year, month, **self.get_person_project_department_arguments()
|
|
1166
|
+
)
|
|
1167
|
+
except WrongDateFormatException:
|
|
1168
|
+
raise WrongParameterException("Invalid month or year.")
|
|
1167
1169
|
|
|
1168
1170
|
|
|
1169
1171
|
class TimeSpentYearsResource(TimeSpentDurationResource):
|
|
@@ -68,7 +68,7 @@ class BaseCsvImportResource(Resource, ArgsMixin):
|
|
|
68
68
|
result = []
|
|
69
69
|
self.check_permissions(*args)
|
|
70
70
|
self.prepare_import(*args)
|
|
71
|
-
with open(file_path) as csvfile:
|
|
71
|
+
with open(file_path, newline="", encoding="utf-8") as csvfile:
|
|
72
72
|
reader = csv.DictReader(csvfile, dialect=self.get_dialect(csvfile))
|
|
73
73
|
line_number = 1
|
|
74
74
|
for row in reader:
|
|
@@ -94,9 +94,10 @@ class BaseCsvImportResource(Resource, ArgsMixin):
|
|
|
94
94
|
|
|
95
95
|
def get_dialect(self, csvfile):
|
|
96
96
|
sniffer = csv.Sniffer()
|
|
97
|
-
|
|
98
|
-
dialect.doublequote = True
|
|
97
|
+
sample = csvfile.read(8192)
|
|
99
98
|
csvfile.seek(0)
|
|
99
|
+
dialect = sniffer.sniff(sample)
|
|
100
|
+
dialect.doublequote = True
|
|
100
101
|
return dialect
|
|
101
102
|
|
|
102
103
|
def prepare_import(self, *args):
|
|
@@ -42,6 +42,7 @@ from zou.app.services.exception import (
|
|
|
42
42
|
CommentNotFoundException,
|
|
43
43
|
ModelWithRelationsDeletionException,
|
|
44
44
|
PersonInProtectedAccounts,
|
|
45
|
+
PreviewFileNotFoundException,
|
|
45
46
|
)
|
|
46
47
|
|
|
47
48
|
|
|
@@ -157,6 +158,8 @@ def remove_task(task_id, force=False):
|
|
|
157
158
|
|
|
158
159
|
def remove_preview_file_by_id(preview_file_id, force=False):
|
|
159
160
|
preview_file = PreviewFile.get(preview_file_id)
|
|
161
|
+
if preview_file is None:
|
|
162
|
+
raise PreviewFileNotFoundException
|
|
160
163
|
return remove_preview_file(preview_file, force=force)
|
|
161
164
|
|
|
162
165
|
|
|
@@ -184,7 +184,10 @@ def get_time_spents_for_month(
|
|
|
184
184
|
"""
|
|
185
185
|
Return all time spents for given month.
|
|
186
186
|
"""
|
|
187
|
-
|
|
187
|
+
month_int = int(month)
|
|
188
|
+
if month_int < 1 or month_int > 12:
|
|
189
|
+
raise WrongDateFormatException
|
|
190
|
+
date = datetime.datetime(int(year), month_int, 1)
|
|
188
191
|
next_month = date + relativedelta.relativedelta(months=1)
|
|
189
192
|
query = TimeSpent.query.filter(TimeSpent.date >= date).filter(
|
|
190
193
|
TimeSpent.date < next_month
|
|
@@ -1336,6 +1336,8 @@ def update_notification(notification_id, read):
|
|
|
1336
1336
|
notification = Notification.get_by(
|
|
1337
1337
|
id=notification_id, person_id=current_user["id"]
|
|
1338
1338
|
)
|
|
1339
|
+
if notification is None:
|
|
1340
|
+
raise NotificationNotFoundException
|
|
1339
1341
|
notification.update({"read": read})
|
|
1340
1342
|
if read:
|
|
1341
1343
|
events.emit(
|
|
@@ -47,11 +47,38 @@ def make_key(prefix, id):
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
def make_read_generator(bucket, key):
|
|
50
|
+
"""
|
|
51
|
+
Create a generator that yields chunks from the storage bucket.
|
|
52
|
+
This function ensures proper cleanup of the underlying stream to avoid
|
|
53
|
+
reentrant call errors when the stream is accessed concurrently.
|
|
54
|
+
"""
|
|
50
55
|
read_stream = bucket.read_chunks(key)
|
|
51
56
|
|
|
52
57
|
def read_generator(read_stream):
|
|
53
|
-
|
|
54
|
-
|
|
58
|
+
try:
|
|
59
|
+
for chunk in read_stream:
|
|
60
|
+
yield chunk
|
|
61
|
+
except GeneratorExit:
|
|
62
|
+
try:
|
|
63
|
+
if hasattr(read_stream, 'close'):
|
|
64
|
+
read_stream.close()
|
|
65
|
+
except Exception:
|
|
66
|
+
pass
|
|
67
|
+
raise
|
|
68
|
+
except StopIteration:
|
|
69
|
+
try:
|
|
70
|
+
if hasattr(read_stream, 'close'):
|
|
71
|
+
read_stream.close()
|
|
72
|
+
except Exception:
|
|
73
|
+
pass
|
|
74
|
+
raise
|
|
75
|
+
except Exception:
|
|
76
|
+
try:
|
|
77
|
+
if hasattr(read_stream, 'close'):
|
|
78
|
+
read_stream.close()
|
|
79
|
+
except Exception:
|
|
80
|
+
pass
|
|
81
|
+
raise
|
|
55
82
|
|
|
56
83
|
return read_generator(read_stream)
|
|
57
84
|
|
|
@@ -57,20 +57,42 @@ def get_file_path_and_file(
|
|
|
57
57
|
exception = None
|
|
58
58
|
try:
|
|
59
59
|
with open(file_path, "wb") as tmp_file:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
file_generator = open_file(prefix, instance_id)
|
|
61
|
+
try:
|
|
62
|
+
for chunk in file_generator:
|
|
63
|
+
tmp_file.write(chunk)
|
|
64
|
+
finally:
|
|
65
|
+
try:
|
|
66
|
+
file_generator.close()
|
|
67
|
+
except StopIteration:
|
|
68
|
+
# Normal end of iteration, expected
|
|
69
|
+
pass
|
|
70
|
+
except Exception:
|
|
71
|
+
pass
|
|
72
|
+
except Exception as e:
|
|
63
73
|
download_failed = True
|
|
74
|
+
exception = e
|
|
64
75
|
|
|
65
76
|
if is_unvalid_file(
|
|
66
77
|
file_path, file_size, download_failed
|
|
67
78
|
): # download failed
|
|
68
79
|
time.sleep(3)
|
|
69
80
|
download_failed = False
|
|
81
|
+
exception = None
|
|
70
82
|
try:
|
|
71
83
|
with open(file_path, "wb") as tmp_file:
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
file_generator = open_file(prefix, instance_id)
|
|
85
|
+
try:
|
|
86
|
+
for chunk in file_generator:
|
|
87
|
+
tmp_file.write(chunk)
|
|
88
|
+
finally:
|
|
89
|
+
try:
|
|
90
|
+
file_generator.close()
|
|
91
|
+
except StopIteration:
|
|
92
|
+
# Normal end of iteration, expected
|
|
93
|
+
pass
|
|
94
|
+
except Exception:
|
|
95
|
+
pass
|
|
74
96
|
except Exception as e:
|
|
75
97
|
download_failed = True
|
|
76
98
|
exception = e
|
|
@@ -371,7 +371,14 @@ def install_plugin_files(files_path, installation_path):
|
|
|
371
371
|
installation_path.mkdir(parents=True, exist_ok=True)
|
|
372
372
|
|
|
373
373
|
if files_path.is_dir():
|
|
374
|
-
|
|
374
|
+
def ignore_git(dir, names):
|
|
375
|
+
ignored = []
|
|
376
|
+
if ".git" in names:
|
|
377
|
+
ignored.append(".git")
|
|
378
|
+
return ignored
|
|
379
|
+
shutil.copytree(
|
|
380
|
+
files_path, installation_path, dirs_exist_ok=True, ignore=ignore_git
|
|
381
|
+
)
|
|
375
382
|
elif zipfile.is_zipfile(files_path):
|
|
376
383
|
shutil.unpack_archive(files_path, installation_path, format="zip")
|
|
377
384
|
else:
|
zou-1.0.5/zou/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.0.5"
|
{zou-1.0.5 → zou-1.0.6}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zou-1.0.5 → zou-1.0.6}/setup.py
RENAMED
|
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
|