wbcrm 1.44.4__tar.gz → 1.45.0__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.
Potentially problematic release.
This version of wbcrm might be problematic. Click here for more details.
- {wbcrm-1.44.4 → wbcrm-1.45.0}/PKG-INFO +1 -1
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/events.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/groups.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/products.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/factories/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/factories/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/factories/groups.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/factories/products.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/groups.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/products.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/signals.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/activities.py +3 -5
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/groups.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/recurrence.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/products.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/recurrence.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/signals.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/admin.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backend.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/google_calendar_backend.py +6 -5
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/utils.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/backend.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/parser.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_admin.py +4 -3
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_backend.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_controller.py +10 -9
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_parser.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/controller.py +4 -3
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/urls.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/views.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tasks.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/accounts/test_models.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/accounts/test_viewsets.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/e2e/e2e_wbcrm_utility.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/e2e/test_e2e.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_assignee_methods.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_chartviewsets.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_dto.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_filters.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_models.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_recurrence.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_report.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_serializers.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_tasks.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/test_viewsets.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/tests.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/display/activities.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/groups.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/mixins.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/products.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/recurrence.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/titles/accounts.py +1 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/.gitignore +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/pyproject.toml +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/admin/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/apps.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/configurations/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/configurations/base.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/dynamic_preferences_registry.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/factories/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/filters/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/fixtures/wbcrm.json +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/kpi_handlers/activities.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0001_initial_squashed_squashed_0032_productcompanyrelationship_alter_product_prospects_and_more.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0002_alter_activity_repeat_choice.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0003_remove_activity_external_id_and_more.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0004_alter_activity_status.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0005_account_accountrole_accountroletype_and_more.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0006_alter_activity_location.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0007_alter_account_status.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0008_alter_activity_options.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0009_alter_account_is_public.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0010_alter_account_reference_id.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0011_activity_summary.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0012_alter_activity_summary.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0013_account_action_plan_account_relationship_status_and_more.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0014_alter_account_relationship_status.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0015_alter_activity_type.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0016_auto_20241205_1015.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0017_event.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/events.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/llm/activity_summaries.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/llm/analyze_relationship.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/models/products.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/preferences.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/report/activity_report.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/serializers/groups.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/activity.md +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/activitytype.md +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/group.md +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/product.md +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/create.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/delete.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/update.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/internal_to_external/update.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tasks.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/conftest.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_data.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_google_backend.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_utils.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/typing_informations.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/msgraph.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/conftest.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/fixtures.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/dynamic_preferences_registry.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/preferences.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/shortcuts.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/tasks.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/utils.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/admin.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/apps.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/dynamic_preferences_registry.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/management.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/tasks.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/urls.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/templates/email/activity.html +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/templates/email/activity_report.html +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/templates/email/daily_summary.html +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/templates/email/global_daily_summary.html +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/accounts/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/conftest.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/disable_signals.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/tests/e2e/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/typings.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/urls.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/accounts.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/signals.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/display/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/display/accounts.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/display/groups.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/display/products.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/accounts.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/activities.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/groups.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/products.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/menu/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/menu/accounts.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/menu/activities.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/menu/groups.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/menu/products.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/previews/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/previews/activities.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/titles/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/titles/activities.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/titles/products.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/viewsets/titles/utils.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/workflows/__init__.py +0 -0
- {wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/workflows/assignee_methods.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wbcrm
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.45.0
|
|
4
4
|
Summary: A workbench module that contains all the functionality related to a customer relationship management.
|
|
5
5
|
Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
|
|
6
6
|
Requires-Dist: django-eventtools==1.*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from django.contrib import admin
|
|
2
2
|
from django.utils.translation import gettext_lazy as _
|
|
3
3
|
from reversion.admin import VersionAdmin
|
|
4
|
+
|
|
4
5
|
from wbcrm.models import Activity, ActivityParticipant, ActivityType
|
|
5
6
|
from wbcrm.models.activities import ActivityCompanyThroughModel
|
|
6
7
|
|
|
@@ -7,6 +7,7 @@ from dynamic_preferences.registries import global_preferences_registry
|
|
|
7
7
|
from faker import Faker
|
|
8
8
|
from wbcore.contrib.authentication.factories import InternalUserFactory
|
|
9
9
|
from wbcore.contrib.directory.factories import CompanyFactory, PersonFactory
|
|
10
|
+
|
|
10
11
|
from wbcrm.models.activities import Activity, ActivityParticipant, ActivityType
|
|
11
12
|
|
|
12
13
|
fake = Faker()
|
|
@@ -14,6 +14,7 @@ from wbcore.contrib.agenda.models import CalendarItem
|
|
|
14
14
|
from wbcore.contrib.directory.models import CustomerStatus
|
|
15
15
|
from wbcore.contrib.directory.models.entries import Company, Person
|
|
16
16
|
from wbcore.filters.lookups import ALL_TEXT_LOOKUPS
|
|
17
|
+
|
|
17
18
|
from wbcrm.models import Activity, ActivityParticipant, ActivityType, Group
|
|
18
19
|
from wbcrm.models.activities import ActivityCompanyThroughModel
|
|
19
20
|
|
|
@@ -15,9 +15,8 @@ from django.db.models.signals import m2m_changed, post_delete, post_save
|
|
|
15
15
|
from django.dispatch import receiver
|
|
16
16
|
from django.template.loader import render_to_string
|
|
17
17
|
from django.utils import timezone
|
|
18
|
-
from django.utils.translation import gettext
|
|
18
|
+
from django.utils.translation import gettext, ngettext_lazy, pgettext_lazy
|
|
19
19
|
from django.utils.translation import gettext_lazy as _
|
|
20
|
-
from django.utils.translation import ngettext_lazy, pgettext_lazy
|
|
21
20
|
from django_fsm import FSMField, transition
|
|
22
21
|
from dynamic_preferences.registries import global_preferences_registry
|
|
23
22
|
from ics.alarm import DisplayAlarm
|
|
@@ -49,6 +48,7 @@ from wbcore.utils.models import (
|
|
|
49
48
|
ComplexToStringMixin,
|
|
50
49
|
DefaultMixin,
|
|
51
50
|
)
|
|
51
|
+
|
|
52
52
|
from wbcrm.models.llm.activity_summaries import analyze_activity
|
|
53
53
|
from wbcrm.models.recurrence import Recurrence
|
|
54
54
|
from wbcrm.synchronization.activity.shortcuts import get_backend
|
|
@@ -889,9 +889,7 @@ def m2m_changed_groups(sender, instance: Activity, action, pk_set, **kwargs):
|
|
|
889
889
|
# Get group members who are members in groups that are to be removed and are also members in groups that remain in the instance.
|
|
890
890
|
# These group members are not to be removed from the instance.
|
|
891
891
|
remaining_groups_members = instance.groups.exclude(id__in=pk_set).values_list("members__id", flat=True)
|
|
892
|
-
members_in_different_groups = np.intersect1d(
|
|
893
|
-
edited_groups_members, remaining_groups_members
|
|
894
|
-
) # type: ignore
|
|
892
|
+
members_in_different_groups = np.intersect1d(edited_groups_members, remaining_groups_members) # type: ignore
|
|
895
893
|
|
|
896
894
|
instance.participants.set(
|
|
897
895
|
instance_participants.difference(edited_persons.exclude(id__in=members_in_different_groups))
|
|
@@ -9,6 +9,7 @@ from django.utils.translation import gettext_lazy as _
|
|
|
9
9
|
from psycopg.types.range import TimestamptzRange
|
|
10
10
|
from wbcore.contrib.agenda.models import CalendarItem
|
|
11
11
|
from wbcore.utils.rrules import convert_rrulestr_to_dict
|
|
12
|
+
|
|
12
13
|
from wbcrm.preferences import (
|
|
13
14
|
get_maximum_allowed_recurrent_date,
|
|
14
15
|
get_recurrence_maximum_count,
|
|
@@ -4,6 +4,7 @@ from rest_framework.validators import UniqueValidator
|
|
|
4
4
|
from wbcore import serializers as wb_serializers
|
|
5
5
|
from wbcore.contrib.authentication.serializers import UserRepresentationSerializer
|
|
6
6
|
from wbcore.contrib.directory.serializers import EntryRepresentationSerializer
|
|
7
|
+
|
|
7
8
|
from wbcrm.models.accounts import Account, AccountRole, AccountRoleType
|
|
8
9
|
|
|
9
10
|
|
|
@@ -20,6 +20,7 @@ from wbcore.contrib.directory.models import Company, Entry, Person
|
|
|
20
20
|
from wbcore.contrib.directory.preferences import get_main_company
|
|
21
21
|
from wbcore.contrib.directory.serializers import PersonRepresentationSerializer
|
|
22
22
|
from wbcore.utils.date import calendar_item_shortcuts
|
|
23
|
+
|
|
23
24
|
from wbcrm.models import Activity, ActivityType
|
|
24
25
|
from wbcrm.models.activities import ActivityCompanyThroughModel, ActivityParticipant
|
|
25
26
|
|
|
@@ -2,6 +2,7 @@ from django.contrib import admin, messages
|
|
|
2
2
|
from django.contrib.auth import get_user_model
|
|
3
3
|
from django.utils.translation import gettext_lazy as _
|
|
4
4
|
from wbcore.contrib.authentication.admin import UserAdmin
|
|
5
|
+
|
|
5
6
|
from wbcrm.admin import ActivityAdmin
|
|
6
7
|
from wbcrm.models import Activity
|
|
7
8
|
|
|
@@ -6,6 +6,7 @@ from django.contrib.auth import get_user_model
|
|
|
6
6
|
from django.http import HttpRequest, HttpResponse
|
|
7
7
|
from django.utils.translation import gettext_lazy
|
|
8
8
|
from wbcore.contrib.notifications.dispatch import send_notification
|
|
9
|
+
|
|
9
10
|
from wbcrm.typings import Activity as ActivityDTO
|
|
10
11
|
from wbcrm.typings import ParticipantStatus as ParticipantStatusDTO
|
|
11
12
|
from wbcrm.typings import User as UserDTO
|
|
@@ -12,6 +12,7 @@ from google.oauth2.service_account import Credentials
|
|
|
12
12
|
from googleapiclient.discovery import Resource, build
|
|
13
13
|
from wbcore.contrib.authentication.models import User
|
|
14
14
|
from wbcore.contrib.directory.models import Person
|
|
15
|
+
|
|
15
16
|
from wbcrm.models import Activity, ActivityParticipant
|
|
16
17
|
|
|
17
18
|
from .request_utils import (
|
|
@@ -365,7 +366,9 @@ class GoogleCalendarBackend:
|
|
|
365
366
|
except Exception as e:
|
|
366
367
|
raise ValueError(
|
|
367
368
|
"{msg}{user}. Eception: {exception}".format(
|
|
368
|
-
msg=cls.error_messages["could_not_set_webhook"],
|
|
369
|
+
msg=cls.error_messages["could_not_set_webhook"],
|
|
370
|
+
user=user.profile.computed_str,
|
|
371
|
+
exception=e, # type: ignore
|
|
369
372
|
)
|
|
370
373
|
)
|
|
371
374
|
|
|
@@ -392,8 +395,6 @@ class GoogleCalendarBackend:
|
|
|
392
395
|
else:
|
|
393
396
|
raise Exception(_("No valid web hook found"))
|
|
394
397
|
|
|
395
|
-
def _get_webhook_inconsistencies(self) -> str:
|
|
396
|
-
...
|
|
398
|
+
def _get_webhook_inconsistencies(self) -> str: ...
|
|
397
399
|
|
|
398
|
-
def webhook_resubscription(self) -> None:
|
|
399
|
-
...
|
|
400
|
+
def webhook_resubscription(self) -> None: ...
|
|
@@ -7,6 +7,7 @@ from django.db import models
|
|
|
7
7
|
from dynamic_preferences.registries import global_preferences_registry
|
|
8
8
|
from wbcore.contrib.agenda.models import CalendarItem
|
|
9
9
|
from wbcore.contrib.directory.models import EmailContact, Person
|
|
10
|
+
|
|
10
11
|
from wbcrm.models import Activity, ActivityParticipant
|
|
11
12
|
from wbcrm.synchronization.activity.preferences import (
|
|
12
13
|
can_synchronize_activity_description,
|
|
@@ -12,6 +12,7 @@ from django.utils import timezone
|
|
|
12
12
|
from django.utils.translation import gettext, gettext_lazy
|
|
13
13
|
from dynamic_preferences.registries import global_preferences_registry
|
|
14
14
|
from psycopg.types.range import TimestamptzRange
|
|
15
|
+
|
|
15
16
|
from wbcrm.synchronization.activity.backend import SyncBackend
|
|
16
17
|
from wbcrm.synchronization.activity.utils import flattened_dict_into_nested_dict
|
|
17
18
|
from wbcrm.typings import Activity as ActivityDTO
|
|
@@ -11,6 +11,7 @@ from wbcore.utils.rrules import (
|
|
|
11
11
|
convert_rrulestr_to_dict,
|
|
12
12
|
convert_weekday_rrule_to_day_name,
|
|
13
13
|
)
|
|
14
|
+
|
|
14
15
|
from wbcrm.typings import Activity as ActivityDTO
|
|
15
16
|
from wbcrm.typings import ConferenceRoom as ConferenceRoomDTO
|
|
16
17
|
from wbcrm.typings import ParticipantStatus as ParticipantStatusDTO
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_admin.py
RENAMED
|
@@ -7,6 +7,7 @@ from django.contrib.messages import get_messages
|
|
|
7
7
|
from dynamic_preferences.registries import global_preferences_registry
|
|
8
8
|
from rest_framework import status
|
|
9
9
|
from wbcore.contrib.authentication.factories import UserFactory
|
|
10
|
+
|
|
10
11
|
from wbcrm.synchronization.activity.admin import UserSyncAdmin
|
|
11
12
|
|
|
12
13
|
from .fixtures import TestOutlookSyncFixture, msgraph_fixture
|
|
@@ -31,9 +32,9 @@ class TestAdminUserWebhook(TestOutlookSyncFixture):
|
|
|
31
32
|
"wbactivity_sync__outlook_sync_credentials"
|
|
32
33
|
] = ""
|
|
33
34
|
if backend:
|
|
34
|
-
preferences[
|
|
35
|
-
"
|
|
36
|
-
|
|
35
|
+
preferences["wbactivity_sync__sync_backend_calendar"] = (
|
|
36
|
+
"wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
|
|
37
|
+
)
|
|
37
38
|
mock_msgraph.return_value.status_code = status.HTTP_200_OK
|
|
38
39
|
mock_msgraph.return_value = msgraph_fixture()
|
|
39
40
|
if credentials:
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_backend.py
RENAMED
|
@@ -5,6 +5,7 @@ import pytest
|
|
|
5
5
|
from dynamic_preferences.registries import global_preferences_registry
|
|
6
6
|
from rest_framework.test import APIRequestFactory
|
|
7
7
|
from wbcore.contrib.authentication.factories import UserFactory
|
|
8
|
+
|
|
8
9
|
from wbcrm.models.activities import Activity
|
|
9
10
|
from wbcrm.synchronization.activity.backends.outlook.backend import OutlookSyncBackend
|
|
10
11
|
|
|
@@ -9,6 +9,7 @@ from django.contrib.contenttypes.models import ContentType
|
|
|
9
9
|
from dynamic_preferences.registries import global_preferences_registry
|
|
10
10
|
from rest_framework.test import APIRequestFactory
|
|
11
11
|
from wbcore.permissions.registry import user_registry
|
|
12
|
+
|
|
12
13
|
from wbcrm.factories import ActivityFactory
|
|
13
14
|
from wbcrm.models import Activity, ActivityParticipant
|
|
14
15
|
from wbcrm.synchronization.activity.shortcuts import get_backend
|
|
@@ -26,9 +27,9 @@ class TestInitController:
|
|
|
26
27
|
controller = get_backend()
|
|
27
28
|
assert controller is None
|
|
28
29
|
|
|
29
|
-
global_preferences_registry.manager()[
|
|
30
|
-
"
|
|
31
|
-
|
|
30
|
+
global_preferences_registry.manager()["wbactivity_sync__sync_backend_calendar"] = (
|
|
31
|
+
"wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
|
|
32
|
+
)
|
|
32
33
|
controller2 = get_backend()
|
|
33
34
|
assert controller2.backend
|
|
34
35
|
|
|
@@ -36,9 +37,9 @@ class TestInitController:
|
|
|
36
37
|
@pytest.mark.django_db
|
|
37
38
|
class TestController(TestOutlookSyncFixture):
|
|
38
39
|
def setup_method(self):
|
|
39
|
-
global_preferences_registry.manager()[
|
|
40
|
-
"
|
|
41
|
-
|
|
40
|
+
global_preferences_registry.manager()["wbactivity_sync__sync_backend_calendar"] = (
|
|
41
|
+
"wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
|
|
42
|
+
)
|
|
42
43
|
|
|
43
44
|
@pytest.fixture()
|
|
44
45
|
@patch("wbcrm.synchronization.activity.backends.outlook.backend.MicrosoftGraphAPI")
|
|
@@ -219,9 +220,9 @@ class TestController(TestOutlookSyncFixture):
|
|
|
219
220
|
delete_notification,
|
|
220
221
|
):
|
|
221
222
|
global_preferences_registry.manager()["wbactivity_sync__sync_cancelled_activity"] = cancel_activity
|
|
222
|
-
global_preferences_registry.manager()[
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
global_preferences_registry.manager()["wbactivity_sync__sync_cancelled_external_activity"] = (
|
|
224
|
+
cancel_external_creator_activity
|
|
225
|
+
)
|
|
225
226
|
|
|
226
227
|
data = self._get_user_and_activities(notification_fixture, user_factory, teams_event_fixture)
|
|
227
228
|
other1_activity, other2_activity, activity = data["activities"]
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_parser.py
RENAMED
|
@@ -3,6 +3,7 @@ from datetime import datetime
|
|
|
3
3
|
import pytest
|
|
4
4
|
from psycopg.types.range import TimestamptzRange
|
|
5
5
|
from wbcore.contrib.agenda.factories import ConferenceRoomFactory
|
|
6
|
+
|
|
6
7
|
from wbcrm.models.recurrence import Recurrence
|
|
7
8
|
from wbcrm.synchronization.activity.backends.outlook.parser import OutlookParser
|
|
8
9
|
|
|
@@ -11,6 +11,7 @@ from django.http import HttpRequest, HttpResponse
|
|
|
11
11
|
from django.utils import timezone
|
|
12
12
|
from wbcore.contrib.agenda.models import Building, ConferenceRoom
|
|
13
13
|
from wbcore.contrib.directory.models import EmailContact, Person
|
|
14
|
+
|
|
14
15
|
from wbcrm.models import Activity, ActivityParticipant, ActivityType, Event
|
|
15
16
|
from wbcrm.synchronization.activity.utils import flattened_metadata_lookup
|
|
16
17
|
from wbcrm.typings import Activity as ActivityDTO
|
|
@@ -438,9 +439,9 @@ class ActivityController:
|
|
|
438
439
|
event_result["action"] += msg
|
|
439
440
|
else:
|
|
440
441
|
new_activity = self._create_activity(activity_dto)
|
|
441
|
-
event_result[
|
|
442
|
-
"
|
|
443
|
-
|
|
442
|
+
event_result["action"] += (
|
|
443
|
+
f"reviewed activity {activity.id} replanned to {new_activity.id} -> new activity {new_activity.status} created"
|
|
444
|
+
)
|
|
444
445
|
# remove metadata since the old activity is not sync anymore
|
|
445
446
|
Activity.objects.filter(id=activity.id).update(
|
|
446
447
|
metadata={
|
|
@@ -27,6 +27,7 @@ from psycopg.types.range import TimestamptzRange
|
|
|
27
27
|
from rest_framework.reverse import reverse
|
|
28
28
|
from wbcore.contrib.directory.models import Company, Person
|
|
29
29
|
from wbcore.contrib.notifications.dispatch import send_notification
|
|
30
|
+
|
|
30
31
|
from wbcrm.models import Activity, ActivityType
|
|
31
32
|
|
|
32
33
|
logger = logging.getLogger()
|
|
@@ -7,6 +7,7 @@ from faker import Faker
|
|
|
7
7
|
from psycopg.types.range import DateRange
|
|
8
8
|
from wbcore.contrib.directory.models import Entry
|
|
9
9
|
from wbcore.contrib.directory.signals import deactivate_profile
|
|
10
|
+
|
|
10
11
|
from wbcrm.models import Account, AccountRole, AccountRoleValidity
|
|
11
12
|
|
|
12
13
|
fake = Faker()
|
|
@@ -4,6 +4,7 @@ from rest_framework.exceptions import AuthenticationFailed
|
|
|
4
4
|
from rest_framework.test import APIRequestFactory
|
|
5
5
|
from wbcore.contrib.authentication.factories.users import UserFactory
|
|
6
6
|
from wbcore.contrib.directory.models import Entry
|
|
7
|
+
|
|
7
8
|
from wbcrm.factories.accounts import AccountFactory, AccountRoleFactory
|
|
8
9
|
from wbcrm.models import Account
|
|
9
10
|
from wbcrm.viewsets.accounts import (
|
|
@@ -4,6 +4,7 @@ from rest_framework.test import APIRequestFactory
|
|
|
4
4
|
from wbcore.contrib.authentication.factories import UserFactory
|
|
5
5
|
from wbcore.contrib.directory.factories.entries import PersonWithEmployerFactory
|
|
6
6
|
from wbcore.contrib.directory.models import Company, Person
|
|
7
|
+
|
|
7
8
|
from wbcrm.filters.signals import choice_noactivity
|
|
8
9
|
from wbcrm.viewsets import ActivityViewSet
|
|
9
10
|
|
|
@@ -13,6 +13,7 @@ from wbcore.contrib.authentication.factories import (
|
|
|
13
13
|
from wbcore.contrib.directory.factories import PersonWithEmployerFactory
|
|
14
14
|
from wbcore.contrib.directory.models import Entry
|
|
15
15
|
from wbcore.contrib.icons import WBIcon
|
|
16
|
+
|
|
16
17
|
from wbcrm.models import Activity, add_employer_to_activities
|
|
17
18
|
|
|
18
19
|
|
|
@@ -4,6 +4,7 @@ from django.forms.models import model_to_dict
|
|
|
4
4
|
from rest_framework.test import APIRequestFactory
|
|
5
5
|
from wbcore.contrib.authentication.factories import UserFactory
|
|
6
6
|
from wbcore.messages import InMemoryMessageStorage
|
|
7
|
+
|
|
7
8
|
from wbcrm.models.activities import Activity
|
|
8
9
|
from wbcrm.models.recurrence import Recurrence
|
|
9
10
|
from wbcrm.preferences import (
|
|
@@ -8,6 +8,7 @@ from rest_framework.test import APIRequestFactory
|
|
|
8
8
|
from wbcore.contrib.authentication.factories import UserFactory
|
|
9
9
|
from wbcore.contrib.directory.factories import PersonFactory
|
|
10
10
|
from wbcore.contrib.directory.models import Entry
|
|
11
|
+
|
|
11
12
|
from wbcrm.factories import ActivityFactory, GroupFactory, ProductFactory
|
|
12
13
|
from wbcrm.serializers import ActivityModelSerializer, ProductModelSerializer
|
|
13
14
|
from wbcrm.serializers.activities import handle_representation
|
|
@@ -4,6 +4,7 @@ import pytest
|
|
|
4
4
|
from django.utils import timezone
|
|
5
5
|
from faker import Faker
|
|
6
6
|
from wbcore.contrib.directory.models import Company
|
|
7
|
+
|
|
7
8
|
from wbcrm.factories import ActivityTypeFactory
|
|
8
9
|
from wbcrm.models import Activity, ActivityType
|
|
9
10
|
from wbcrm.tasks import default_activity_heat_calculation
|
|
@@ -13,6 +13,7 @@ from wbcore.contrib.authentication.factories import (
|
|
|
13
13
|
from wbcore.contrib.authentication.models import Permission
|
|
14
14
|
from wbcore.messages import InMemoryMessageStorage
|
|
15
15
|
from wbcore.test.utils import get_data_from_factory, get_kwargs, get_model_factory
|
|
16
|
+
|
|
16
17
|
from wbcrm.models import Activity, ActivityParticipant
|
|
17
18
|
from wbcrm.viewsets import (
|
|
18
19
|
ActivityParticipantModelViewSet,
|
|
@@ -8,6 +8,7 @@ from wbcore.test import GenerateTest, default_config
|
|
|
8
8
|
from wbcore.test.mixins import TestViewSet
|
|
9
9
|
from wbcore.test.signals import custom_update_kwargs
|
|
10
10
|
from wbcore.test.utils import get_data_from_factory, get_kwargs, get_or_create_superuser
|
|
11
|
+
|
|
11
12
|
from wbcrm.factories import AccountFactory
|
|
12
13
|
from wbcrm.viewsets import ActivityParticipantModelViewSet
|
|
13
14
|
from wbcrm.viewsets.accounts import (
|
|
@@ -4,6 +4,7 @@ from django.utils.functional import cached_property
|
|
|
4
4
|
from rest_framework.exceptions import AuthenticationFailed
|
|
5
5
|
from wbcore import viewsets
|
|
6
6
|
from wbcore.utils.views import MergeMixin
|
|
7
|
+
|
|
7
8
|
from wbcrm.filters import AccountFilter, AccountRoleFilterSet
|
|
8
9
|
from wbcrm.models.accounts import Account, AccountRole, AccountRoleType
|
|
9
10
|
from wbcrm.serializers.accounts import (
|
|
@@ -4,6 +4,7 @@ from wbcore.contrib.icons import WBIcon
|
|
|
4
4
|
from wbcore.enums import RequestType
|
|
5
5
|
from wbcore.metadata.configs import buttons as bt
|
|
6
6
|
from wbcore.metadata.configs.buttons.view_config import ButtonViewConfig
|
|
7
|
+
|
|
7
8
|
from wbcrm.models.activities import Activity, ActivityParticipant
|
|
8
9
|
from wbcrm.synchronization.activity.shortcuts import get_backend
|
|
9
10
|
|
|
@@ -15,6 +15,7 @@ from wbcore.metadata.configs.display.instance_display import (
|
|
|
15
15
|
)
|
|
16
16
|
from wbcore.metadata.configs.display.instance_display.operators import default
|
|
17
17
|
from wbcore.metadata.configs.display.view_config import DisplayViewConfig
|
|
18
|
+
|
|
18
19
|
from wbcrm.models import Activity
|
|
19
20
|
|
|
20
21
|
|
|
@@ -4,6 +4,7 @@ from wbcore.metadata.configs.display.instance_display.shortcuts import (
|
|
|
4
4
|
create_simple_display,
|
|
5
5
|
)
|
|
6
6
|
from wbcore.viewsets import RepresentationViewSet
|
|
7
|
+
|
|
7
8
|
from wbcrm.filters import GroupFilter
|
|
8
9
|
from wbcrm.models import Group
|
|
9
10
|
from wbcrm.serializers import GroupModelSerializer, GroupRepresentationSerializer
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/migrations/0005_account_accountrole_accountroletype_and_more.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
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/__init__.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/conftest.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_data.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_utils.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/typing_informations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/__init__.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/conftest.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/fixtures.py
RENAMED
|
File without changes
|
{wbcrm-1.44.4 → wbcrm-1.45.0}/wbcrm/synchronization/activity/dynamic_preferences_registry.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
|