wbcrm 1.44.5__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.

Files changed (175) hide show
  1. {wbcrm-1.44.5 → wbcrm-1.45.0}/PKG-INFO +1 -1
  2. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/accounts.py +1 -0
  3. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/activities.py +1 -0
  4. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/events.py +1 -0
  5. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/groups.py +1 -0
  6. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/products.py +1 -0
  7. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/factories/accounts.py +1 -0
  8. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/factories/activities.py +1 -0
  9. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/factories/groups.py +1 -0
  10. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/factories/products.py +1 -0
  11. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/accounts.py +1 -0
  12. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/activities.py +1 -0
  13. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/groups.py +1 -0
  14. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/products.py +1 -0
  15. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/signals.py +1 -0
  16. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/accounts.py +1 -0
  17. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/activities.py +3 -5
  18. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/groups.py +1 -0
  19. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/recurrence.py +1 -0
  20. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/accounts.py +1 -0
  21. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/activities.py +1 -0
  22. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/products.py +1 -0
  23. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/recurrence.py +1 -0
  24. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/signals.py +1 -0
  25. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/admin.py +1 -0
  26. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backend.py +1 -0
  27. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/google_calendar_backend.py +6 -5
  28. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/utils.py +1 -0
  29. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/backend.py +1 -0
  30. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/parser.py +1 -0
  31. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_admin.py +4 -3
  32. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_backend.py +1 -0
  33. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_controller.py +10 -9
  34. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/test_parser.py +1 -0
  35. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/controller.py +4 -3
  36. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/urls.py +1 -0
  37. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/views.py +1 -0
  38. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tasks.py +1 -0
  39. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/accounts/test_models.py +1 -0
  40. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/accounts/test_viewsets.py +1 -0
  41. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/e2e/e2e_wbcrm_utility.py +1 -0
  42. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/e2e/test_e2e.py +1 -0
  43. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_assignee_methods.py +1 -0
  44. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_chartviewsets.py +1 -0
  45. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_dto.py +1 -0
  46. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_filters.py +1 -0
  47. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_models.py +1 -0
  48. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_recurrence.py +1 -0
  49. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_report.py +1 -0
  50. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_serializers.py +1 -0
  51. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_tasks.py +1 -0
  52. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/test_viewsets.py +1 -0
  53. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/tests.py +1 -0
  54. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/accounts.py +1 -0
  55. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/activities.py +1 -0
  56. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/activities.py +1 -0
  57. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/display/activities.py +1 -0
  58. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/groups.py +1 -0
  59. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/mixins.py +1 -0
  60. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/products.py +1 -0
  61. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/recurrence.py +1 -0
  62. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/titles/accounts.py +1 -0
  63. {wbcrm-1.44.5 → wbcrm-1.45.0}/.gitignore +0 -0
  64. {wbcrm-1.44.5 → wbcrm-1.45.0}/pyproject.toml +0 -0
  65. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/__init__.py +0 -0
  66. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/admin/__init__.py +0 -0
  67. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/apps.py +0 -0
  68. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/configurations/__init__.py +0 -0
  69. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/configurations/base.py +0 -0
  70. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/dynamic_preferences_registry.py +0 -0
  71. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/factories/__init__.py +0 -0
  72. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/filters/__init__.py +0 -0
  73. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/fixtures/wbcrm.json +0 -0
  74. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/kpi_handlers/activities.py +0 -0
  75. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/locale/de/LC_MESSAGES/django.po +0 -0
  76. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0001_initial_squashed_squashed_0032_productcompanyrelationship_alter_product_prospects_and_more.py +0 -0
  77. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0002_alter_activity_repeat_choice.py +0 -0
  78. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0003_remove_activity_external_id_and_more.py +0 -0
  79. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0004_alter_activity_status.py +0 -0
  80. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0005_account_accountrole_accountroletype_and_more.py +0 -0
  81. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0006_alter_activity_location.py +0 -0
  82. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0007_alter_account_status.py +0 -0
  83. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0008_alter_activity_options.py +0 -0
  84. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0009_alter_account_is_public.py +0 -0
  85. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0010_alter_account_reference_id.py +0 -0
  86. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0011_activity_summary.py +0 -0
  87. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0012_alter_activity_summary.py +0 -0
  88. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0013_account_action_plan_account_relationship_status_and_more.py +0 -0
  89. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0014_alter_account_relationship_status.py +0 -0
  90. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0015_alter_activity_type.py +0 -0
  91. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0016_auto_20241205_1015.py +0 -0
  92. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/0017_event.py +0 -0
  93. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/migrations/__init__.py +0 -0
  94. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/__init__.py +0 -0
  95. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/events.py +0 -0
  96. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/llm/activity_summaries.py +0 -0
  97. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/llm/analyze_relationship.py +0 -0
  98. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/models/products.py +0 -0
  99. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/preferences.py +0 -0
  100. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/report/activity_report.py +0 -0
  101. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/__init__.py +0 -0
  102. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/serializers/groups.py +0 -0
  103. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/activity.md +0 -0
  104. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/activitytype.md +0 -0
  105. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/group.md +0 -0
  106. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/static/wbcrm/markdown/documentation/product.md +0 -0
  107. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/__init__.py +0 -0
  108. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/__init__.py +0 -0
  109. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/__init__.py +0 -0
  110. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/__init__.py +0 -0
  111. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/__init__.py +0 -0
  112. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/create.py +0 -0
  113. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/delete.py +0 -0
  114. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/update.py +0 -0
  115. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/request_utils/internal_to_external/update.py +0 -0
  116. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tasks.py +0 -0
  117. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/__init__.py +0 -0
  118. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/conftest.py +0 -0
  119. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_data.py +0 -0
  120. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_google_backend.py +0 -0
  121. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/tests/test_utils.py +0 -0
  122. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/google/typing_informations.py +0 -0
  123. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/__init__.py +0 -0
  124. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/msgraph.py +0 -0
  125. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/__init__.py +0 -0
  126. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/conftest.py +0 -0
  127. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/backends/outlook/tests/fixtures.py +0 -0
  128. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/dynamic_preferences_registry.py +0 -0
  129. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/preferences.py +0 -0
  130. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/shortcuts.py +0 -0
  131. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/tasks.py +0 -0
  132. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/activity/utils.py +0 -0
  133. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/admin.py +0 -0
  134. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/apps.py +0 -0
  135. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/dynamic_preferences_registry.py +0 -0
  136. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/management.py +0 -0
  137. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/tasks.py +0 -0
  138. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/synchronization/urls.py +0 -0
  139. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/templates/email/activity.html +0 -0
  140. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/templates/email/activity_report.html +0 -0
  141. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/templates/email/daily_summary.html +0 -0
  142. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/templates/email/global_daily_summary.html +0 -0
  143. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/__init__.py +0 -0
  144. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/accounts/__init__.py +0 -0
  145. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/conftest.py +0 -0
  146. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/disable_signals.py +0 -0
  147. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/tests/e2e/__init__.py +0 -0
  148. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/typings.py +0 -0
  149. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/urls.py +0 -0
  150. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/__init__.py +0 -0
  151. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/__init__.py +0 -0
  152. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/accounts.py +0 -0
  153. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/buttons/signals.py +0 -0
  154. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/display/__init__.py +0 -0
  155. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/display/accounts.py +0 -0
  156. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/display/groups.py +0 -0
  157. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/display/products.py +0 -0
  158. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/__init__.py +0 -0
  159. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/accounts.py +0 -0
  160. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/activities.py +0 -0
  161. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/groups.py +0 -0
  162. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/endpoints/products.py +0 -0
  163. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/menu/__init__.py +0 -0
  164. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/menu/accounts.py +0 -0
  165. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/menu/activities.py +0 -0
  166. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/menu/groups.py +0 -0
  167. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/menu/products.py +0 -0
  168. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/previews/__init__.py +0 -0
  169. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/previews/activities.py +0 -0
  170. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/titles/__init__.py +0 -0
  171. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/titles/activities.py +0 -0
  172. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/titles/products.py +0 -0
  173. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/viewsets/titles/utils.py +0 -0
  174. {wbcrm-1.44.5 → wbcrm-1.45.0}/wbcrm/workflows/__init__.py +0 -0
  175. {wbcrm-1.44.5 → 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.44.5
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,5 +1,6 @@
1
1
  from django.contrib import admin
2
2
  from mptt.admin import MPTTModelAdmin
3
+
3
4
  from wbcrm.models.accounts import (
4
5
  Account,
5
6
  AccountRole,
@@ -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
 
@@ -1,4 +1,5 @@
1
1
  from django.contrib import admin
2
+
2
3
  from wbcrm.models.events import Event
3
4
 
4
5
 
@@ -1,4 +1,5 @@
1
1
  from django.contrib import admin
2
+
2
3
  from wbcrm.models import Group
3
4
 
4
5
 
@@ -1,4 +1,5 @@
1
1
  from django.contrib import admin
2
+
2
3
  from wbcrm.models import Product
3
4
 
4
5
 
@@ -1,5 +1,6 @@
1
1
  import factory
2
2
  from slugify import slugify
3
+
3
4
  from wbcrm.models.accounts import Account, AccountRole, AccountRoleType
4
5
 
5
6
 
@@ -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()
@@ -2,6 +2,7 @@ import random
2
2
 
3
3
  import factory
4
4
  from wbcore.contrib.directory.factories import EntryFactory
5
+
5
6
  from wbcrm.models.groups import Group
6
7
 
7
8
 
@@ -1,4 +1,5 @@
1
1
  import factory
2
+
2
3
  from wbcrm.models import Product
3
4
 
4
5
 
@@ -1,5 +1,6 @@
1
1
  from wbcore import filters as wb_filters
2
2
  from wbcore.contrib.directory.models import Entry
3
+
3
4
  from wbcrm.models.accounts import Account, AccountRole
4
5
 
5
6
 
@@ -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
 
@@ -1,6 +1,7 @@
1
1
  from django.utils.translation import gettext_lazy as _
2
2
  from wbcore import filters as wb_filters
3
3
  from wbcore.contrib.directory.models import Entry
4
+
4
5
  from wbcrm.models import Group
5
6
 
6
7
 
@@ -1,6 +1,7 @@
1
1
  from django.utils.translation import gettext_lazy as _
2
2
  from wbcore import filters as wb_filters
3
3
  from wbcore.contrib.directory.models import Company
4
+
4
5
  from wbcrm.models import Product, ProductCompanyRelationship
5
6
 
6
7
 
@@ -14,6 +14,7 @@ from wbcore.contrib.directory.filters.entries import (
14
14
  )
15
15
  from wbcore.contrib.directory.models import Entry
16
16
  from wbcore.signals.filters import add_filters
17
+
17
18
  from wbcrm.models import Account, AccountRole, Product
18
19
 
19
20
 
@@ -28,6 +28,7 @@ from wbcore.utils.models import (
28
28
  ComplexToStringMixin,
29
29
  DeleteToDisableMixin,
30
30
  )
31
+
31
32
  from wbcrm.models.llm.analyze_relationship import analyze_relationship
32
33
 
33
34
 
@@ -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))
@@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _
7
7
  from wbcore.contrib.agenda.models import CalendarItem
8
8
  from wbcore.contrib.directory.models import Company, Entry, Person
9
9
  from wbcore.models import WBModel
10
+
10
11
  from wbcrm.models import Activity
11
12
 
12
13
 
@@ -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
 
@@ -4,6 +4,7 @@ from slugify import slugify
4
4
  from wbcore import serializers
5
5
  from wbcore import serializers as wb_serializers
6
6
  from wbcore.contrib.directory.serializers import CompanyRepresentationSerializer
7
+
7
8
  from wbcrm.models import Product, ProductCompanyRelationship
8
9
 
9
10
 
@@ -4,6 +4,7 @@ from django.utils.translation import gettext
4
4
  from rest_framework import serializers
5
5
  from rest_framework.reverse import reverse
6
6
  from wbcore import serializers as wb_serializers
7
+
7
8
  from wbcrm.models.recurrence import Recurrence
8
9
 
9
10
 
@@ -15,6 +15,7 @@ from wbcore.contrib.directory.serializers import (
15
15
  TelephoneContactSerializer,
16
16
  )
17
17
  from wbcore.signals import add_additional_resource, add_instance_additional_resource
18
+
18
19
  from wbcrm.models import ActivityType
19
20
 
20
21
 
@@ -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"], user=user.profile.computed_str, exception=e # type: ignore
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
@@ -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
- "wbactivity_sync__sync_backend_calendar"
36
- ] = "wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
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:
@@ -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
- "wbactivity_sync__sync_backend_calendar"
31
- ] = "wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
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
- "wbactivity_sync__sync_backend_calendar"
41
- ] = "wbcrm.synchronization.activity.backends.outlook.backend.OutlookSyncBackend"
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
- "wbactivity_sync__sync_cancelled_external_activity"
224
- ] = cancel_external_creator_activity
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"]
@@ -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
- "action"
443
- ] += f"reviewed activity {activity.id} replanned to {new_activity.id} -> new activity {new_activity.status} created"
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={
@@ -1,4 +1,5 @@
1
1
  from django.urls import path
2
+
2
3
  from wbcrm.synchronization.activity.views import event_watch
3
4
 
4
5
  urlpatterns = [
@@ -2,6 +2,7 @@ from celery import shared_task
2
2
  from django.db.utils import OperationalError
3
3
  from django.http import HttpRequest, HttpResponse
4
4
  from django.views.decorators.csrf import csrf_exempt
5
+
5
6
  from wbcrm.models.events import Event
6
7
 
7
8
  from .shortcuts import get_backend
@@ -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 (
@@ -6,6 +6,7 @@ from wbcore.test import (
6
6
  fill_out_form_fields,
7
7
  open_create_instance,
8
8
  )
9
+
9
10
  from wbcrm.factories import ActivityFactory, ActivityTypeFactory
10
11
  from wbcrm.models import Activity, ActivityType
11
12
  from wbcrm.serializers import ActivityModelSerializer
@@ -46,6 +46,7 @@ from wbcore.test import (
46
46
  select_filter,
47
47
  set_up,
48
48
  )
49
+
49
50
  from wbcrm.factories import ActivityFactory
50
51
  from wbcrm.models import Activity
51
52
  from wbcrm.serializers import ActivityModelSerializer
@@ -9,6 +9,7 @@ from wbcore.contrib.workflow.factories import (
9
9
  RandomChildStepFactory,
10
10
  UserStepFactory,
11
11
  )
12
+
12
13
  from wbcrm.workflows.assignee_methods import activity_assignee
13
14
 
14
15
 
@@ -2,6 +2,7 @@ import pytest
2
2
  from rest_framework import status
3
3
  from rest_framework.test import APIRequestFactory
4
4
  from wbcore.test.utils import get_kwargs
5
+
5
6
  from wbcrm.factories import ActivityFactory
6
7
  from wbcrm.viewsets import ActivityChartModelViewSet, ActivityViewSet
7
8
 
@@ -1,5 +1,6 @@
1
1
  import pytest
2
2
  from wbcore.contrib.directory.typings import Person as PersonDTO
3
+
3
4
  from wbcrm.typings import Activity as ActivityDTO
4
5
  from wbcrm.typings import ParticipantStatus as ParticipantStatusDTO
5
6
  from wbcrm.typings import User as UserDTO
@@ -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 (
@@ -1,6 +1,7 @@
1
1
  import pytest
2
2
  from rest_framework.test import APIRequestFactory
3
3
  from wbcore.contrib.authentication.factories import UserFactory
4
+
4
5
  from wbcrm.report.activity_report import create_report, create_report_and_send
5
6
 
6
7
 
@@ -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 (
@@ -20,6 +20,7 @@ from wbcore.contrib.directory.models import (
20
20
  TelephoneContact,
21
21
  )
22
22
  from wbcore.filters import DjangoFilterBackend
23
+
23
24
  from wbcrm import serializers as crm_serializers
24
25
  from wbcrm.filters import (
25
26
  ActivityChartFilter,
@@ -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
@@ -1,6 +1,7 @@
1
1
  from datetime import date
2
2
 
3
3
  from django.utils.functional import cached_property
4
+
4
5
  from wbcrm.models.accounts import Account, AccountRole
5
6
 
6
7
 
@@ -1,5 +1,6 @@
1
1
  from django.db.models import F
2
2
  from wbcore import viewsets
3
+
3
4
  from wbcrm.filters.products import ProductCompanyFilterSet, ProductFilterSet
4
5
  from wbcrm.models import Product, ProductCompanyRelationship
5
6
  from wbcrm.serializers import (
@@ -4,6 +4,7 @@ from django.utils.translation import gettext as _
4
4
  from rest_framework import permissions
5
5
  from rest_framework.decorators import action
6
6
  from rest_framework.response import Response
7
+
7
8
  from wbcrm.models.recurrence import Recurrence
8
9
 
9
10
 
@@ -1,4 +1,5 @@
1
1
  from wbcore.metadata.configs.titles import TitleViewConfig
2
+
2
3
  from wbcrm.models.accounts import Account
3
4
 
4
5
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes