workers-control 0.2.4__tar.gz → 0.2.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.
Files changed (606) hide show
  1. {workers_control-0.2.4/src/workers_control.egg-info → workers_control-0.2.6}/PKG-INFO +3 -3
  2. {workers_control-0.2.4 → workers_control-0.2.6}/build_support/backend.py +7 -1
  3. {workers_control-0.2.4 → workers_control-0.2.6}/pyproject.toml +8 -14
  4. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/email_notifications.py +3 -3
  5. workers_control-0.2.6/src/workers_control/core/interactors/accept_collaboration.py +82 -0
  6. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/accept_coordination_transfer.py +26 -22
  7. workers_control-0.2.4/src/workers_control/core/interactors/cancel_cooperation_solicitation.py → workers_control-0.2.6/src/workers_control/core/interactors/cancel_collaboration_solicitation.py +5 -5
  8. workers_control-0.2.4/src/workers_control/core/interactors/create_cooperation.py → workers_control-0.2.6/src/workers_control/core/interactors/create_collaboration.py +21 -19
  9. workers_control-0.2.6/src/workers_control/core/interactors/deny_collaboration.py +68 -0
  10. workers_control-0.2.6/src/workers_control/core/interactors/end_collaboration.py +73 -0
  11. workers_control-0.2.4/src/workers_control/core/interactors/get_coop_summary.py → workers_control-0.2.6/src/workers_control/core/interactors/get_collab_summary.py +22 -22
  12. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_coordination_transfer_request_details.py +19 -17
  13. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_plan_details.py +8 -8
  14. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_statistics.py +7 -3
  15. workers_control-0.2.6/src/workers_control/core/interactors/list_all_collaborations.py +45 -0
  16. workers_control-0.2.4/src/workers_control/core/interactors/list_coordinations_of_cooperation.py → workers_control-0.2.6/src/workers_control/core/interactors/list_coordinations_of_collaboration.py +12 -12
  17. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_coordinations_of_company.py +13 -13
  18. workers_control-0.2.4/src/workers_control/core/interactors/list_my_cooperating_plans.py → workers_control-0.2.6/src/workers_control/core/interactors/list_my_collaborating_plans.py +16 -16
  19. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_transfers.py +2 -2
  20. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/query_offers.py +8 -8
  21. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_private_consumption.py +5 -3
  22. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_productive_consumption.py +5 -3
  23. workers_control-0.2.4/src/workers_control/core/interactors/request_cooperation.py → workers_control-0.2.6/src/workers_control/core/interactors/request_collaboration.py +34 -32
  24. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/request_coordination_transfer.py +9 -9
  25. workers_control-0.2.6/src/workers_control/core/interactors/show_company_collaborations.py +102 -0
  26. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_my_plans.py +16 -16
  27. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_payout_factor_details.py +9 -5
  28. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/records.py +5 -5
  29. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/repositories.py +33 -33
  30. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/account_details.py +4 -4
  31. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/compensation_transfers.py +10 -10
  32. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/price_calculator.py +7 -7
  33. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/transfers.py +1 -1
  34. workers_control-0.2.6/src/workers_control/db/migrations/versions/d8c3f5a90e21_rename_cooperation_to_collaboration.py +52 -0
  35. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/models.py +9 -9
  36. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/repositories.py +181 -165
  37. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/class_based_view.py +3 -3
  38. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/dependency_injection.py +5 -4
  39. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/flask_colors.py +5 -5
  40. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/flask_session.py +2 -2
  41. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/forms.py +8 -8
  42. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/mail_service/__init__.py +6 -6
  43. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/plotter.py +76 -22
  44. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/auth/routes.py +7 -7
  45. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/company/blueprint.py +3 -1
  46. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/company/routes.py +36 -32
  47. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/member/blueprint.py +3 -1
  48. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/member/routes.py +7 -5
  49. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/plots/routes.py +2 -1
  50. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/user/blueprint.py +2 -2
  51. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/user/routes.py +14 -13
  52. workers_control-0.2.4/src/workers_control/flask/templates/company/create_cooperation.html → workers_control-0.2.6/src/workers_control/flask/templates/company/create_collaboration.html +6 -6
  53. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/dashboard.html +5 -5
  54. workers_control-0.2.4/src/workers_control/flask/templates/company/my_cooperations.html → workers_control-0.2.6/src/workers_control/flask/templates/company/my_collaborations.html +32 -32
  55. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/my_plans.html +2 -2
  56. workers_control-0.2.4/src/workers_control/flask/templates/company/request_cooperation.html → workers_control-0.2.6/src/workers_control/flask/templates/company/request_collaboration.html +8 -8
  57. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/request_coordination_transfer.html +2 -2
  58. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/show_coordination_transfer_request.html +2 -2
  59. workers_control-0.2.4/src/workers_control/flask/templates/user/coop_summary.html → workers_control-0.2.6/src/workers_control/flask/templates/user/collab_summary.html +10 -10
  60. workers_control-0.2.4/src/workers_control/flask/templates/user/list_all_cooperations.html → workers_control-0.2.6/src/workers_control/flask/templates/user/list_all_collaborations.html +5 -5
  61. workers_control-0.2.4/src/workers_control/flask/templates/user/list_coordinations_of_cooperation.html → workers_control-0.2.6/src/workers_control/flask/templates/user/list_coordinations_of_collaboration.html +2 -2
  62. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/query_offers.html +2 -2
  63. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/statistics.html +34 -32
  64. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/translations/de/LC_MESSAGES/messages.po +356 -354
  65. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/translations/en/LC_MESSAGES/messages.po +347 -345
  66. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/translations/es/LC_MESSAGES/messages.po +404 -399
  67. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/translations/messages.pot +297 -336
  68. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/url_index.py +12 -10
  69. workers_control-0.2.4/src/workers_control/flask/views/accept_cooperation_request_view.py → workers_control-0.2.6/src/workers_control/flask/views/accept_collaboration_request_view.py +11 -11
  70. workers_control-0.2.4/src/workers_control/flask/views/cancel_cooperation_request_view.py → workers_control-0.2.6/src/workers_control/flask/views/cancel_collaboration_request_view.py +9 -9
  71. workers_control-0.2.4/src/workers_control/flask/views/coop_summary_view.py → workers_control-0.2.6/src/workers_control/flask/views/collab_summary_view.py +12 -12
  72. workers_control-0.2.4/src/workers_control/flask/views/create_cooperation_view.py → workers_control-0.2.6/src/workers_control/flask/views/create_collaboration_view.py +17 -15
  73. workers_control-0.2.4/src/workers_control/flask/views/deny_cooperation_view.py → workers_control-0.2.6/src/workers_control/flask/views/deny_collaboration_view.py +13 -13
  74. workers_control-0.2.4/src/workers_control/flask/views/end_cooperation_view.py → workers_control-0.2.6/src/workers_control/flask/views/end_collaboration_view.py +11 -9
  75. workers_control-0.2.4/src/workers_control/flask/views/end_plan_cooperation_view.py → workers_control-0.2.6/src/workers_control/flask/views/end_plan_collaboration_view.py +11 -11
  76. workers_control-0.2.4/src/workers_control/flask/views/list_all_cooperations_view.py → workers_control-0.2.6/src/workers_control/flask/views/list_all_collaborations_view.py +8 -8
  77. workers_control-0.2.6/src/workers_control/flask/views/list_coordinators_of_collaboration_view.py +34 -0
  78. workers_control-0.2.4/src/workers_control/flask/views/request_cooperation_view.py → workers_control-0.2.6/src/workers_control/flask/views/request_collaboration_view.py +20 -17
  79. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/request_coordination_transfer_view.py +5 -5
  80. workers_control-0.2.6/src/workers_control/flask/views/show_my_collaborations_view.py +58 -0
  81. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/signup_member_view.py +2 -2
  82. workers_control-0.2.4/src/workers_control/web/email/cooperation_request_email_presenter.py → workers_control-0.2.6/src/workers_control/web/email/collaboration_request_email_presenter.py +5 -5
  83. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/email_sender.py +4 -4
  84. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/request_coordination_transfer_presenter.py +3 -3
  85. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/formatters/datetime_formatter.py +3 -1
  86. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/forms/__init__.py +1 -1
  87. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/url_index.py +5 -5
  88. workers_control-0.2.6/src/workers_control/web/www/controllers/end_collaboration_controller.py +35 -0
  89. workers_control-0.2.4/src/workers_control/web/www/controllers/request_cooperation_controller.py → workers_control-0.2.6/src/workers_control/web/www/controllers/request_collaboration_controller.py +12 -12
  90. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/request_coordination_transfer_controller.py +3 -3
  91. workers_control-0.2.6/src/workers_control/web/www/presenters/__init__.py +0 -0
  92. workers_control-0.2.6/src/workers_control/web/www/presenters/accept_collaboration_request_presenter.py +57 -0
  93. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/accept_coordination_transfer_presenter.py +2 -2
  94. workers_control-0.2.4/src/workers_control/web/www/presenters/cancel_cooperation_request_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/cancel_collaboration_request_presenter.py +3 -3
  95. workers_control-0.2.4/src/workers_control/web/www/presenters/create_cooperation_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/create_collaboration_presenter.py +14 -14
  96. workers_control-0.2.6/src/workers_control/web/www/presenters/deny_collaboration_presenter.py +57 -0
  97. workers_control-0.2.4/src/workers_control/web/www/presenters/end_cooperation_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/end_collaboration_presenter.py +10 -10
  98. workers_control-0.2.4/src/workers_control/web/www/presenters/end_plan_cooperation_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/end_plan_collaboration_presenter.py +6 -6
  99. workers_control-0.2.4/src/workers_control/web/www/presenters/get_coop_summary_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/get_collab_summary_presenter.py +20 -20
  100. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_coordination_transfer_request_details_presenter.py +5 -5
  101. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_plan_details_presenter.py +5 -5
  102. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_statistics_presenter.py +15 -22
  103. workers_control-0.2.6/src/workers_control/web/www/presenters/list_all_collaborations_presenter.py +52 -0
  104. workers_control-0.2.4/src/workers_control/web/www/presenters/list_coordinations_of_cooperation_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/list_coordinations_of_collaboration_presenter.py +14 -14
  105. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_transfers_presenter.py +3 -3
  106. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/query_offers_presenter.py +3 -3
  107. workers_control-0.2.4/src/workers_control/web/www/presenters/request_cooperation_presenter.py → workers_control-0.2.6/src/workers_control/web/www/presenters/request_collaboration_presenter.py +23 -21
  108. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/request_coordination_transfer_presenter.py +6 -6
  109. workers_control-0.2.6/src/workers_control/web/www/presenters/show_my_collaborations_presenter.py +189 -0
  110. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_my_plans_presenter.py +9 -3
  111. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/transfers.py +2 -2
  112. {workers_control-0.2.4 → workers_control-0.2.6/src/workers_control.egg-info}/PKG-INFO +3 -3
  113. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control.egg-info/SOURCES.txt +43 -45
  114. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control.egg-info/requires.txt +2 -2
  115. workers_control-0.2.4/src/workers_control/core/interactors/accept_cooperation.py +0 -80
  116. workers_control-0.2.4/src/workers_control/core/interactors/deny_cooperation.py +0 -68
  117. workers_control-0.2.4/src/workers_control/core/interactors/end_cooperation.py +0 -73
  118. workers_control-0.2.4/src/workers_control/core/interactors/list_all_cooperations.py +0 -41
  119. workers_control-0.2.4/src/workers_control/core/interactors/preview_private_consumption.py +0 -46
  120. workers_control-0.2.4/src/workers_control/core/interactors/show_company_cooperations.py +0 -102
  121. workers_control-0.2.4/src/workers_control/flask/views/__init__.py +0 -25
  122. workers_control-0.2.4/src/workers_control/flask/views/list_coordinators_of_cooperation_view.py +0 -30
  123. workers_control-0.2.4/src/workers_control/flask/views/show_my_cooperations_view.py +0 -56
  124. workers_control-0.2.4/src/workers_control/web/www/controllers/approve_plan_controller.py +0 -10
  125. workers_control-0.2.4/src/workers_control/web/www/controllers/end_cooperation_controller.py +0 -33
  126. workers_control-0.2.4/src/workers_control/web/www/controllers/reject_plan_controller.py +0 -10
  127. workers_control-0.2.4/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +0 -59
  128. workers_control-0.2.4/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +0 -58
  129. workers_control-0.2.4/src/workers_control/web/www/presenters/list_all_cooperations_presenter.py +0 -48
  130. workers_control-0.2.4/src/workers_control/web/www/presenters/show_my_cooperations_presenter.py +0 -187
  131. {workers_control-0.2.4 → workers_control-0.2.6}/LICENSE +0 -0
  132. {workers_control-0.2.4 → workers_control-0.2.6}/MANIFEST.in +0 -0
  133. {workers_control-0.2.4 → workers_control-0.2.6}/README.rst +0 -0
  134. {workers_control-0.2.4 → workers_control-0.2.6}/build_support/__init__.py +0 -0
  135. {workers_control-0.2.4 → workers_control-0.2.6}/build_support/babel.cfg +0 -0
  136. {workers_control-0.2.4 → workers_control-0.2.6}/build_support/project.py +0 -0
  137. {workers_control-0.2.4 → workers_control-0.2.6}/build_support/translations.py +0 -0
  138. {workers_control-0.2.4 → workers_control-0.2.6}/setup.cfg +0 -0
  139. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/__init__.py +0 -0
  140. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/accountant_notifications.py +0 -0
  141. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/anonymization.py +0 -0
  142. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/control_thresholds.py +0 -0
  143. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/datetime_service.py +0 -0
  144. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/decimal.py +0 -0
  145. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/email.py +0 -0
  146. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/injector.py +0 -0
  147. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/__init__.py +0 -0
  148. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/answer_company_work_invite.py +0 -0
  149. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/approve_plan.py +0 -0
  150. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/change_user_email_address.py +0 -0
  151. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/change_user_name.py +0 -0
  152. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/change_user_password.py +0 -0
  153. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/confirm_company.py +0 -0
  154. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/confirm_member.py +0 -0
  155. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/create_basic_service.py +0 -0
  156. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/create_draft_from_plan.py +0 -0
  157. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/create_plan_draft.py +0 -0
  158. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/deactivate_basic_service.py +0 -0
  159. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/delete_draft.py +0 -0
  160. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/edit_draft.py +0 -0
  161. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/file_plan_with_accounting.py +0 -0
  162. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_accountant_dashboard.py +0 -0
  163. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_company_dashboard.py +0 -0
  164. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_company_summary.py +0 -0
  165. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_draft_details.py +0 -0
  166. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_member_dashboard.py +0 -0
  167. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_plan_for_review.py +0 -0
  168. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_private_consumption_details.py +0 -0
  169. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_productive_consumption_details.py +0 -0
  170. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/get_user_account_details.py +0 -0
  171. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/hide_plan.py +0 -0
  172. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/invite_worker_to_company.py +0 -0
  173. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_active_plans_of_company.py +0 -0
  174. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_available_languages.py +0 -0
  175. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_basic_services_of_worker.py +0 -0
  176. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_pending_work_invites.py +0 -0
  177. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_plans_with_pending_review.py +0 -0
  178. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_registered_hours_worked.py +0 -0
  179. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/list_workers.py +0 -0
  180. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/log_in_accountant.py +0 -0
  181. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/log_in_company.py +0 -0
  182. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/log_in_member.py +0 -0
  183. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/query_companies.py +0 -0
  184. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/query_company_consumptions.py +0 -0
  185. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/query_private_consumptions.py +0 -0
  186. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_accountant.py +0 -0
  187. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_company.py +0 -0
  188. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_hours_worked.py +0 -0
  189. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_member.py +0 -0
  190. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_private_consumption_of_basic_service.py +0 -0
  191. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/register_productive_consumption_of_basic_service.py +0 -0
  192. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/reject_plan.py +0 -0
  193. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/remove_worker_from_company.py +0 -0
  194. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/request_email_address_change.py +0 -0
  195. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/request_user_password_reset.py +0 -0
  196. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/resend_confirmation_mail.py +0 -0
  197. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/resend_work_invite.py +0 -0
  198. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/review_registered_consumptions.py +0 -0
  199. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/revoke_plan_filing.py +0 -0
  200. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/select_private_consumption.py +0 -0
  201. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/select_private_consumption_of_basic_service.py +0 -0
  202. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/select_productive_consumption.py +0 -0
  203. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/select_productive_consumption_of_basic_service.py +0 -0
  204. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/send_accountant_registration_token.py +0 -0
  205. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_a_account_details.py +0 -0
  206. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_basic_service.py +0 -0
  207. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_company_accounts.py +0 -0
  208. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_company_work_invite_details.py +0 -0
  209. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_member_account_details.py +0 -0
  210. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_p_account_details.py +0 -0
  211. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_prd_account_details.py +0 -0
  212. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_psf_account_details.py +0 -0
  213. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/interactors/show_r_account_details.py +0 -0
  214. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/password_hasher.py +0 -0
  215. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/__init__.py +0 -0
  216. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/payout_factor.py +0 -0
  217. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/core/services/psf_balance.py +0 -0
  218. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/__init__.py +0 -0
  219. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/db.py +0 -0
  220. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/alembic.ini +0 -0
  221. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/env.py +0 -0
  222. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/script.py.mako +0 -0
  223. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/17911726c134_add_deactivated_on_to_basic_service.py +0 -0
  224. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/399a221ebea4_add_private_consumption_of_basic_.py +0 -0
  225. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/480a749375de_drop_transaction_table.py +0 -0
  226. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/4fd90069eb82_remove_social_accounting_account.py +0 -0
  227. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/686f2af1cbfe_add_basic_service_transfer_types.py +0 -0
  228. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/68ac7ccf6086_create_table_emailoutbox.py +0 -0
  229. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/7a4d0412c2a7_add_productive_consumption_of_basic_.py +0 -0
  230. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/a3e7b2c1d4f5_use_native_uuid_column_types.py +0 -0
  231. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/b40539bf0293_add_basic_service_table.py +0 -0
  232. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/c5e8a9d0f1b2_add_taxes_to_basic_service_consumptions.py +0 -0
  233. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/c9f2e1a4b8d7_add_outbox_status_columns.py +0 -0
  234. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/db/migrations/versions/f4a9c2e1b6d3_replace_plan_review_with_plan_rejection.py +0 -0
  235. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/email_sending_worker/__init__.py +0 -0
  236. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/email_sending_worker/interface.py +0 -0
  237. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/email_sending_worker/smtp_service.py +0 -0
  238. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/email_sending_worker/worker.py +0 -0
  239. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/__init__.py +0 -0
  240. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/babel.py +0 -0
  241. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/commands.py +0 -0
  242. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/config/__init__.py +0 -0
  243. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/config/checks.py +0 -0
  244. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/config/loader.py +0 -0
  245. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/config/options.py +0 -0
  246. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/config/production_defaults.py +0 -0
  247. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/context_processors.py +0 -0
  248. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/control_thresholds.py +0 -0
  249. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/database.py +0 -0
  250. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/datetime.py +0 -0
  251. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/email_configuration.py +0 -0
  252. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/extensions.py +0 -0
  253. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/filters.py +0 -0
  254. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/flask_request.py +0 -0
  255. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/language_repository.py +0 -0
  256. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/logging_config.json +0 -0
  257. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/mail_sender/__init__.py +0 -0
  258. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/mail_service/interface.py +0 -0
  259. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/mail_service/mail_storage_service.py +0 -0
  260. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/notifications.py +0 -0
  261. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/password_hasher.py +0 -0
  262. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/payout_factor.py +0 -0
  263. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/profiling.py +0 -0
  264. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/__init__.py +0 -0
  265. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/accountant/__init__.py +0 -0
  266. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/accountant/blueprint.py +0 -0
  267. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/accountant/routes.py +0 -0
  268. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/auth/__init__.py +0 -0
  269. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/company/__init__.py +0 -0
  270. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/healthcheck/__init__.py +0 -0
  271. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/healthcheck/blueprint.py +0 -0
  272. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/member/__init__.py +0 -0
  273. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/plots/__init__.py +0 -0
  274. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/routes/user/__init__.py +0 -0
  275. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/bulma.css +0 -0
  276. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/colors.css +0 -0
  277. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/favicon.ico +0 -0
  278. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/main.css +0 -0
  279. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/main.js +0 -0
  280. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/static/main.module.js +0 -0
  281. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/accountant/dashboard.html +0 -0
  282. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/accountant/notification-about-new-plan.html +0 -0
  283. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/accountant/plans-to-review-list.html +0 -0
  284. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/accountant/review_plan.html +0 -0
  285. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/accountant_invitation.html +0 -0
  286. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/activate.html +0 -0
  287. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/help.html +0 -0
  288. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/login_accountant.html +0 -0
  289. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/login_company.html +0 -0
  290. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/login_member.html +0 -0
  291. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/password_reset_confirmation_email.html +0 -0
  292. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/request_password_reset.html +0 -0
  293. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/reset_password.html +0 -0
  294. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/reset_password_email.html +0 -0
  295. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/reset_password_invalid.html +0 -0
  296. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/signup_accountant.html +0 -0
  297. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/signup_company.html +0 -0
  298. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/signup_member.html +0 -0
  299. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/start.html +0 -0
  300. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/unconfirmed_company.html +0 -0
  301. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/auth/unconfirmed_member.html +0 -0
  302. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/base.html +0 -0
  303. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/consumption_details.html +0 -0
  304. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/create_draft.html +0 -0
  305. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/draft_details.html +0 -0
  306. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/invite_worker_to_company.html +0 -0
  307. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/list_pending_work_invites.html +0 -0
  308. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/list_registered_hours_worked.html +0 -0
  309. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/my_consumptions.html +0 -0
  310. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/register_hours_worked.html +0 -0
  311. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/register_productive_consumption.html +0 -0
  312. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/register_productive_consumption_of_basic_service.html +0 -0
  313. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/rejected_plan_notification.html +0 -0
  314. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/remove_worker_from_company.html +0 -0
  315. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/company/review_registered_consumptions.html +0 -0
  316. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/at.html +0 -0
  317. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/basket-shopping.html +0 -0
  318. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/book.html +0 -0
  319. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/calendar.html +0 -0
  320. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/chart-line.html +0 -0
  321. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/chart-pie.html +0 -0
  322. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/check.html +0 -0
  323. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/copy.html +0 -0
  324. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/credit-card.html +0 -0
  325. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/edit.html +0 -0
  326. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/envelope.html +0 -0
  327. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/exchange-alt.html +0 -0
  328. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/exclamation-triangle.html +0 -0
  329. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/eye-slashed.html +0 -0
  330. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/eye.html +0 -0
  331. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/file-circle-plus.html +0 -0
  332. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/file.html +0 -0
  333. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/hands-helping.html +0 -0
  334. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/hourglass.html +0 -0
  335. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/industry.html +0 -0
  336. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/info-circle.html +0 -0
  337. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/key.html +0 -0
  338. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/list.html +0 -0
  339. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/oil-can.html +0 -0
  340. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/redo.html +0 -0
  341. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/square-arrow-up-right.html +0 -0
  342. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/times.html +0 -0
  343. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/trash.html +0 -0
  344. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/user.html +0 -0
  345. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/icons/users.html +0 -0
  346. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/company_summary.html +0 -0
  347. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/copy_toggle.html +0 -0
  348. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/draft_form.html +0 -0
  349. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/form_field_error.html +0 -0
  350. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/language_selection.html +0 -0
  351. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/navbar.html +0 -0
  352. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/navigation.html +0 -0
  353. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/pagination.html +0 -0
  354. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/plan_details.html +0 -0
  355. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/show_notifications.html +0 -0
  356. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/tooltips.html +0 -0
  357. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/macros/transfers.html +0 -0
  358. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/basic_services.html +0 -0
  359. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/consumption_details.html +0 -0
  360. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/consumptions.html +0 -0
  361. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/create_basic_service.html +0 -0
  362. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/dashboard.html +0 -0
  363. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/my_account.html +0 -0
  364. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/notification-about-work-invitation.html +0 -0
  365. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/register_private_consumption.html +0 -0
  366. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/register_private_consumption_of_basic_service.html +0 -0
  367. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/member/show_company_work_invite_details.html +0 -0
  368. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/account_details.html +0 -0
  369. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/account_psf.html +0 -0
  370. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/change_user_name.html +0 -0
  371. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_account_a.html +0 -0
  372. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_account_p.html +0 -0
  373. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_account_prd.html +0 -0
  374. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_account_r.html +0 -0
  375. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_accounts.html +0 -0
  376. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/company_summary.html +0 -0
  377. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/confirm_email_address_change.html +0 -0
  378. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/http_error.html +0 -0
  379. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/list_transfers.html +0 -0
  380. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/name_change_confirmation.html +0 -0
  381. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/plan_details.html +0 -0
  382. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/query_companies.html +0 -0
  383. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/request_email_address_change.html +0 -0
  384. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/request_email_change_notification.html +0 -0
  385. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/request_email_change_warning.html +0 -0
  386. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/show_basic_service.html +0 -0
  387. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/templates/user/show_payout_factor_details.html +0 -0
  388. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/text_renderer.py +0 -0
  389. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/token.py +0 -0
  390. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/translator.py +0 -0
  391. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/types.py +0 -0
  392. {workers_control-0.2.4/src/workers_control/web → workers_control-0.2.6/src/workers_control/flask/views}/__init__.py +0 -0
  393. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/accountant_invitation_email_view.py +0 -0
  394. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/change_email_address_view.py +0 -0
  395. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/change_user_name_view.py +0 -0
  396. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/company_dashboard_view.py +0 -0
  397. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/company_work_invite_view.py +0 -0
  398. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/create_basic_service_view.py +0 -0
  399. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/create_draft_from_plan_view.py +0 -0
  400. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/create_draft_view.py +0 -0
  401. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/deactivate_basic_service_view.py +0 -0
  402. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/delete_draft_view.py +0 -0
  403. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/draft_details_view.py +0 -0
  404. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/file_plan_with_accounting_view.py +0 -0
  405. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/get_plan_details_view.py +0 -0
  406. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/get_private_consumption_details.py +0 -0
  407. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/get_productive_consumption_details.py +0 -0
  408. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/get_statistics_view.py +0 -0
  409. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/healthcheck_view.py +0 -0
  410. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/hide_plan_view.py +0 -0
  411. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/http_error_view.py +0 -0
  412. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/invite_worker_to_company.py +0 -0
  413. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/list_basic_services_of_worker_view.py +0 -0
  414. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/list_pending_work_invites_view.py +0 -0
  415. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/list_registered_hours_worked_view.py +0 -0
  416. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/list_transfers.py +0 -0
  417. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/log_in_accountant_view.py +0 -0
  418. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/log_in_company_view.py +0 -0
  419. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/log_in_member_view.py +0 -0
  420. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/member_dashboard_view.py +0 -0
  421. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/query_companies.py +0 -0
  422. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/query_company_consumptions_view.py +0 -0
  423. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/query_offers.py +0 -0
  424. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/query_private_consumptions.py +0 -0
  425. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/register_hours_worked_view.py +0 -0
  426. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/register_private_consumption.py +0 -0
  427. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/register_private_consumption_of_basic_service_view.py +0 -0
  428. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/register_productive_consumption.py +0 -0
  429. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/register_productive_consumption_of_basic_service_view.py +0 -0
  430. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/remove_worker_from_company_view.py +0 -0
  431. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/request_email_address_change_view.py +0 -0
  432. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/request_password_reset_view.py +0 -0
  433. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/resend_confirmation_view.py +0 -0
  434. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/reset_password_view.py +0 -0
  435. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/review_plan_view.py +0 -0
  436. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/review_registered_consumptions_view.py +0 -0
  437. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/revoke_plan_filing_view.py +0 -0
  438. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_a_account_details_view.py +0 -0
  439. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_basic_service_view.py +0 -0
  440. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_company_accounts_view.py +0 -0
  441. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_coordination_transfer_request_view.py +0 -0
  442. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_member_account_details_view.py +0 -0
  443. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_my_plans_view.py +0 -0
  444. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_p_account_details_view.py +0 -0
  445. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_payout_factor_details_view.py +0 -0
  446. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_prd_account_details_view.py +0 -0
  447. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_psf_account_details_view.py +0 -0
  448. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/show_r_account_details_view.py +0 -0
  449. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/signup_accountant_view.py +0 -0
  450. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/views/signup_company_view.py +0 -0
  451. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/flask/wsgi.py +0 -0
  452. {workers_control-0.2.4/src/workers_control/web/formatters → workers_control-0.2.6/src/workers_control/web}/__init__.py +0 -0
  453. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/colors.py +0 -0
  454. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/__init__.py +0 -0
  455. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/accountant_invitation_presenter.py +0 -0
  456. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/company_notifier.py +0 -0
  457. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/email_change_confirmation_presenter.py +0 -0
  458. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/email_change_warning_view.py +0 -0
  459. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/invite_worker_presenter.py +0 -0
  460. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/name_change_confirmation_presenter.py +0 -0
  461. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/notify_about_worker_removal_from_company_presenter.py +0 -0
  462. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/notify_accountant_about_new_plan_presenter.py +0 -0
  463. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/registration_email_presenter.py +0 -0
  464. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/email/reset_password_email_presenter.py +0 -0
  465. {workers_control-0.2.4/src/workers_control/web/www → workers_control-0.2.6/src/workers_control/web/formatters}/__init__.py +0 -0
  466. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/forms/fields.py +0 -0
  467. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/forms/formfield_parsers.py +0 -0
  468. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/json.py +0 -0
  469. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/language_service.py +0 -0
  470. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/malformed_input_data.py +0 -0
  471. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/notification.py +0 -0
  472. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/pagination.py +0 -0
  473. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/request.py +0 -0
  474. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/session.py +0 -0
  475. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/text_renderer.py +0 -0
  476. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/token.py +0 -0
  477. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/translator.py +0 -0
  478. {workers_control-0.2.4/src/workers_control/web/www/controllers → workers_control-0.2.6/src/workers_control/web/www}/__init__.py +0 -0
  479. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/authentication.py +0 -0
  480. {workers_control-0.2.4/src/workers_control/web/www/presenters → workers_control-0.2.6/src/workers_control/web/www/controllers}/__init__.py +0 -0
  481. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/accept_coordination_transfer_controller.py +0 -0
  482. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/answer_company_work_invite_controller.py +0 -0
  483. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/change_user_email_address_controller.py +0 -0
  484. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/change_user_name_controller.py +0 -0
  485. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/confirm_company_controller.py +0 -0
  486. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/confirm_member_controller.py +0 -0
  487. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/create_basic_service_controller.py +0 -0
  488. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/create_draft_controller.py +0 -0
  489. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/create_draft_from_plan_controller.py +0 -0
  490. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/deactivate_basic_service_controller.py +0 -0
  491. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/delete_draft_controller.py +0 -0
  492. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/draft_form_validator.py +0 -0
  493. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/edit_draft_controller.py +0 -0
  494. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/file_plan_with_accounting_controller.py +0 -0
  495. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/get_private_consumption_details_controller.py +0 -0
  496. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/get_productive_consumption_details_controller.py +0 -0
  497. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/invite_worker_to_company_controller.py +0 -0
  498. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/list_basic_services_of_worker_controller.py +0 -0
  499. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/list_pending_work_invites_controller.py +0 -0
  500. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/list_registered_hours_worked_controller.py +0 -0
  501. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/list_transfers_controller.py +0 -0
  502. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/list_workers_controller.py +0 -0
  503. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/log_in_accountant_controller.py +0 -0
  504. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/query_companies_controller.py +0 -0
  505. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/query_offers_controller.py +0 -0
  506. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/query_private_consumptions_controller.py +0 -0
  507. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_accountant_controller.py +0 -0
  508. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_company_controller.py +0 -0
  509. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_hours_worked_controller.py +0 -0
  510. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_member_controller.py +0 -0
  511. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_private_consumption_controller.py +0 -0
  512. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_private_consumption_form_validator.py +0 -0
  513. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_controller.py +0 -0
  514. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_form_validator.py +0 -0
  515. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_productive_consumption_controller.py +0 -0
  516. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_controller.py +0 -0
  517. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_form_validator.py +0 -0
  518. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/remove_worker_from_company_controller.py +0 -0
  519. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/request_email_address_change_controller.py +0 -0
  520. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/request_password_reset_controller.py +0 -0
  521. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/resend_work_invite_controller.py +0 -0
  522. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/reset_password_controller.py +0 -0
  523. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/review_plan_controller.py +0 -0
  524. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/review_registered_consumptions_controller.py +0 -0
  525. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/revoke_plan_filing_controller.py +0 -0
  526. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/select_private_consumption_controller.py +0 -0
  527. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/select_private_consumption_of_basic_service_controller.py +0 -0
  528. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/select_productive_consumption_controller.py +0 -0
  529. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/select_productive_consumption_of_basic_service_controller.py +0 -0
  530. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_a_account_details_controller.py +0 -0
  531. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_basic_service_controller.py +0 -0
  532. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_company_accounts_controller.py +0 -0
  533. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_company_work_invite_details_controller.py +0 -0
  534. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_p_account_details_controller.py +0 -0
  535. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_prd_account_details_controller.py +0 -0
  536. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/show_r_account_details_controller.py +0 -0
  537. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/controllers/user_account_details_controller.py +0 -0
  538. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/navbar.py +0 -0
  539. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/answer_company_work_invite_presenter.py +0 -0
  540. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/approve_plan_presenter.py +0 -0
  541. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/change_user_email_address_presenter.py +0 -0
  542. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/change_user_name_presenter.py +0 -0
  543. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/company_consumptions_presenter.py +0 -0
  544. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/create_basic_service_presenter.py +0 -0
  545. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/create_draft_from_plan_presenter.py +0 -0
  546. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/create_draft_presenter.py +0 -0
  547. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/deactivate_basic_service_presenter.py +0 -0
  548. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/delete_draft_presenter.py +0 -0
  549. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/edit_draft_presenter.py +0 -0
  550. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/file_plan_with_accounting_presenter.py +0 -0
  551. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_accountant_dashboard_presenter.py +0 -0
  552. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_company_dashboard_presenter.py +0 -0
  553. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_company_summary_presenter.py +0 -0
  554. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_draft_details_presenter.py +0 -0
  555. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_member_dashboard_presenter.py +0 -0
  556. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/get_plan_for_review_presenter.py +0 -0
  557. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/hide_plan_presenter.py +0 -0
  558. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/invite_worker_to_company_presenter.py +0 -0
  559. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_available_languages_presenter.py +0 -0
  560. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_basic_services_of_worker_presenter.py +0 -0
  561. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_pending_work_invites_presenter.py +0 -0
  562. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_plans_presenter.py +0 -0
  563. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_plans_with_pending_review_presenter.py +0 -0
  564. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_registered_hours_worked_presenter.py +0 -0
  565. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/list_workers_presenter.py +0 -0
  566. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/log_in_accountant_presenter.py +0 -0
  567. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/log_in_company_presenter.py +0 -0
  568. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/log_in_member_presenter.py +0 -0
  569. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/private_consumption_details_presenter.py +0 -0
  570. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/private_consumptions_presenter.py +0 -0
  571. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/productive_consumption_details_presenter.py +0 -0
  572. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/query_companies_presenter.py +0 -0
  573. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_accountant_presenter.py +0 -0
  574. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_company_presenter.py +0 -0
  575. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_hours_worked_presenter.py +0 -0
  576. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_member_presenter.py +0 -0
  577. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_private_consumption_of_basic_service_presenter.py +0 -0
  578. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_private_consumption_presenter.py +0 -0
  579. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_productive_consumption_of_basic_service_presenter.py +0 -0
  580. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/register_productive_consumption_presenter.py +0 -0
  581. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/reject_plan_presenter.py +0 -0
  582. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/remove_worker_from_company_presenter.py +0 -0
  583. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/request_email_address_change_presenter.py +0 -0
  584. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/request_password_reset_presenter.py +0 -0
  585. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/resend_work_invite_presenter.py +0 -0
  586. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/reset_password_presenter.py +0 -0
  587. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/review_registered_consumptions_presenter.py +0 -0
  588. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/revoke_plan_filing_presenter.py +0 -0
  589. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/select_private_consumption_of_basic_service_presenter.py +0 -0
  590. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/select_private_consumption_presenter.py +0 -0
  591. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/select_productive_consumption_of_basic_service_presenter.py +0 -0
  592. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/select_productive_consumption_presenter.py +0 -0
  593. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_a_account_details_presenter.py +0 -0
  594. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_basic_service_presenter.py +0 -0
  595. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_company_accounts_presenter.py +0 -0
  596. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_company_work_invite_details_presenter.py +0 -0
  597. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_member_account_details_presenter.py +0 -0
  598. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_p_account_details_presenter.py +0 -0
  599. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_payout_factor_details_presenter.py +0 -0
  600. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_prd_account_details_presenter.py +0 -0
  601. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_psf_account_details_presenter.py +0 -0
  602. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/show_r_account_details_presenter.py +0 -0
  603. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/presenters/user_account_details_presenter.py +0 -0
  604. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control/web/www/response.py +0 -0
  605. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control.egg-info/dependency_links.txt +0 -0
  606. {workers_control-0.2.4 → workers_control-0.2.6}/src/workers_control.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workers-control
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: A flask app for labour time accounting.
5
5
  License-Expression: AGPL-3.0-or-later
6
6
  Project-URL: Source, https://github.com/ida-arbeitszeit/workers-control
@@ -15,12 +15,12 @@ Description-Content-Type: text/x-rst
15
15
  License-File: LICENSE
16
16
  Requires-Dist: alembic==1.18.1
17
17
  Requires-Dist: email-validator==2.3.0
18
- Requires-Dist: flask==3.1.2
18
+ Requires-Dist: flask<=3.1.3,>=3.1.2
19
19
  Requires-Dist: flask-babel==4.0.0
20
20
  Requires-Dist: flask-talisman==1.1.0
21
21
  Requires-Dist: flask-login==0.6.3
22
22
  Requires-Dist: flask-wtf==1.2.2
23
- Requires-Dist: matplotlib<=3.11.0,>=3.10.9
23
+ Requires-Dist: matplotlib<=3.11.1,>=3.10.9
24
24
  Provides-Extra: profiling
25
25
  Requires-Dist: flask_profiler; extra == "profiling"
26
26
  Dynamic: license-file
@@ -1,9 +1,15 @@
1
+ from typing import Any, Dict, Optional
2
+
1
3
  from setuptools import build_meta as _orig
2
4
  from setuptools.build_meta import * # noqa: F403,F401
3
5
 
4
6
  from build_support import translations
5
7
 
6
8
 
7
- def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): # type: ignore[no-redef]
9
+ def build_wheel( # type: ignore[no-redef]
10
+ wheel_directory: str,
11
+ config_settings: Optional[Dict[str, Any]] = None,
12
+ metadata_directory: Optional[str] = None,
13
+ ) -> str:
8
14
  translations.compile_messages()
9
15
  return _orig.build_wheel(wheel_directory, config_settings, metadata_directory)
@@ -5,7 +5,7 @@ backend-path = ["."]
5
5
 
6
6
  [project]
7
7
  name = "workers-control"
8
- version = "0.2.4"
8
+ version = "0.2.6"
9
9
  description = "A flask app for labour time accounting."
10
10
  license = "AGPL-3.0-or-later"
11
11
  requires-python = ">=3.13"
@@ -21,12 +21,12 @@ dependencies = [
21
21
  # Pin to exact versions, if possible.
22
22
  "alembic==1.18.1",
23
23
  "email-validator==2.3.0",
24
- "flask==3.1.2",
24
+ "flask>=3.1.2, <=3.1.3", # different versions in stable/unstable nixpkgs
25
25
  "flask-babel==4.0.0",
26
26
  "flask-talisman==1.1.0",
27
27
  "flask-login==0.6.3",
28
28
  "flask-wtf==1.2.2",
29
- "matplotlib>=3.10.9, <=3.11.0" # different versions in stable/unstable nixpkgs
29
+ "matplotlib>=3.10.9, <=3.11.1" # different versions in stable/unstable nixpkgs
30
30
  ]
31
31
 
32
32
  [project.optional-dependencies]
@@ -68,20 +68,14 @@ exclude = '''
68
68
  '''
69
69
  disable_error_code = "type-abstract"
70
70
  explicit_package_bases = true
71
+ disallow_untyped_defs = true
71
72
 
72
73
  [[tool.mypy.overrides]]
73
74
  module = [
74
- "src",
75
- "dev",
76
- "tests"
77
- ]
78
- allow_untyped_defs = false
79
-
80
- [[tool.mypy.overrides]]
81
- module = [
82
- "flask_babel",
83
- "flask_login",
84
- "flask_wtf",
75
+ "flask_babel.*",
76
+ "flask_login.*",
77
+ "flask_talisman.*",
78
+ "flask_wtf.*",
85
79
  "parameterized.*",
86
80
  "wtforms.*",
87
81
  ]
@@ -64,7 +64,7 @@ class NameChangeConfirmation:
64
64
 
65
65
 
66
66
  @dataclass
67
- class CooperationRequestEmail:
67
+ class CollaborationRequestEmail:
68
68
  coordinator_email_address: str
69
69
  coordinator_name: str
70
70
 
@@ -73,7 +73,7 @@ class CooperationRequestEmail:
73
73
  class CoordinationTransferRequest:
74
74
  candidate_email: str
75
75
  candidate_name: str
76
- cooperation_name: str
76
+ collaboration_name: str
77
77
  transfer_request: UUID
78
78
 
79
79
 
@@ -103,7 +103,7 @@ Message: TypeAlias = Union[
103
103
  AccountantInvitation,
104
104
  AccountantNotificationAboutNewPlan,
105
105
  CompanyRegistration,
106
- CooperationRequestEmail,
106
+ CollaborationRequestEmail,
107
107
  CoordinationTransferRequest,
108
108
  EmailChangeWarning,
109
109
  EmailChangeConfirmation,
@@ -0,0 +1,82 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum, auto
3
+ from typing import Optional
4
+ from uuid import UUID
5
+
6
+ from workers_control.core.datetime_service import DatetimeService
7
+ from workers_control.core.repositories import DatabaseGateway
8
+
9
+
10
+ @dataclass
11
+ class AcceptCollaborationRequest:
12
+ requester_id: UUID
13
+ plan_id: UUID
14
+ collaboration_id: UUID
15
+
16
+
17
+ @dataclass
18
+ class AcceptCollaborationResponse:
19
+ class RejectionReason(Exception, Enum):
20
+ plan_not_found = auto()
21
+ collaboration_not_found = auto()
22
+ plan_inactive = auto()
23
+ plan_has_collaboration = auto()
24
+ plan_is_public_service = auto()
25
+ collaboration_was_not_requested = auto()
26
+ requester_is_not_coordinator = auto()
27
+
28
+ rejection_reason: Optional[RejectionReason]
29
+
30
+ @property
31
+ def is_rejected(self) -> bool:
32
+ return self.rejection_reason is not None
33
+
34
+
35
+ @dataclass
36
+ class AcceptCollaborationInteractor:
37
+ database_gateway: DatabaseGateway
38
+ datetime_service: DatetimeService
39
+
40
+ def execute(
41
+ self, request: AcceptCollaborationRequest
42
+ ) -> AcceptCollaborationResponse:
43
+ try:
44
+ self._validate_request(request)
45
+ except AcceptCollaborationResponse.RejectionReason as reason:
46
+ return AcceptCollaborationResponse(rejection_reason=reason)
47
+ plan = self.database_gateway.get_plans().with_id(request.plan_id)
48
+ plan.update().set_collaboration(
49
+ request.collaboration_id
50
+ ).set_requested_collaboration(None).perform()
51
+ return AcceptCollaborationResponse(rejection_reason=None)
52
+
53
+ def _validate_request(self, request: AcceptCollaborationRequest) -> None:
54
+ plan_and_collaboration = (
55
+ self.database_gateway.get_plans()
56
+ .with_id(request.plan_id)
57
+ .joined_with_collaboration()
58
+ .first()
59
+ )
60
+ collaboration_and_coordinator = (
61
+ self.database_gateway.get_collaborations()
62
+ .with_id(request.collaboration_id)
63
+ .joined_with_current_coordinator()
64
+ .first()
65
+ )
66
+ now = self.datetime_service.now()
67
+ if collaboration_and_coordinator is None:
68
+ raise AcceptCollaborationResponse.RejectionReason.collaboration_not_found
69
+ collaboration, coordinator = collaboration_and_coordinator
70
+ if plan_and_collaboration is None:
71
+ raise AcceptCollaborationResponse.RejectionReason.plan_not_found
72
+ plan, current_collaboration = plan_and_collaboration
73
+ if not plan.is_active_as_of(now):
74
+ raise AcceptCollaborationResponse.RejectionReason.plan_inactive
75
+ if current_collaboration:
76
+ raise AcceptCollaborationResponse.RejectionReason.plan_has_collaboration
77
+ if plan.is_public_service:
78
+ raise AcceptCollaborationResponse.RejectionReason.plan_is_public_service
79
+ if plan.requested_collaboration != collaboration.id:
80
+ raise AcceptCollaborationResponse.RejectionReason.collaboration_was_not_requested
81
+ if request.requester_id != coordinator.id:
82
+ raise AcceptCollaborationResponse.RejectionReason.requester_is_not_coordinator
@@ -4,7 +4,7 @@ from typing import Optional
4
4
  from uuid import UUID
5
5
 
6
6
  from workers_control.core.datetime_service import DatetimeService
7
- from workers_control.core.records import Cooperation, CoordinationTransferRequest
7
+ from workers_control.core.records import Collaboration, CoordinationTransferRequest
8
8
  from workers_control.core.repositories import DatabaseGateway
9
9
 
10
10
 
@@ -26,7 +26,7 @@ class AcceptCoordinationTransferInteractor:
26
26
  accepting_company_is_not_candidate = auto()
27
27
 
28
28
  rejection_reason: Optional[RejectionReason]
29
- cooperation_id: Optional[UUID]
29
+ collaboration_id: Optional[UUID]
30
30
  transfer_request_id: UUID
31
31
 
32
32
  @property
@@ -35,63 +35,67 @@ class AcceptCoordinationTransferInteractor:
35
35
 
36
36
  def accept_coordination_transfer(self, request: Request) -> Response:
37
37
  try:
38
- transfer_request, cooperation = self._validate_request(request)
38
+ transfer_request, collaboration = self._validate_request(request)
39
39
  except self.Response.RejectionReason as reason:
40
40
  return self.Response(
41
41
  rejection_reason=reason,
42
- cooperation_id=None,
42
+ collaboration_id=None,
43
43
  transfer_request_id=request.transfer_request_id,
44
44
  )
45
- cooperation_id = self._create_new_coordination_tenure(
46
- transfer_request, cooperation
45
+ collaboration_id = self._create_new_coordination_tenure(
46
+ transfer_request, collaboration
47
47
  )
48
48
  return self.Response(
49
49
  rejection_reason=None,
50
- cooperation_id=cooperation_id,
50
+ collaboration_id=collaboration_id,
51
51
  transfer_request_id=request.transfer_request_id,
52
52
  )
53
53
 
54
54
  def _validate_request(
55
55
  self, request: Request
56
- ) -> tuple[CoordinationTransferRequest, Cooperation]:
56
+ ) -> tuple[CoordinationTransferRequest, Collaboration]:
57
57
  result = (
58
58
  self.database_gateway.get_coordination_transfer_requests()
59
59
  .with_id(request.transfer_request_id)
60
- .joined_with_cooperation()
60
+ .joined_with_collaboration()
61
61
  .first()
62
62
  )
63
63
  if result is None:
64
64
  raise self.Response.RejectionReason.transfer_request_not_found
65
- transfer_request, cooperation = result
65
+ transfer_request, collaboration = result
66
66
  if transfer_request.candidate != request.accepting_company:
67
67
  raise self.Response.RejectionReason.accepting_company_is_not_candidate
68
- if self._cooperation_has_a_coordination_tenure_starting_after_transfer_request(
69
- cooperation=cooperation, transfer_request=transfer_request
68
+ if self._collaboration_has_a_coordination_tenure_starting_after_transfer_request(
69
+ collaboration=collaboration, transfer_request=transfer_request
70
70
  ):
71
71
  raise self.Response.RejectionReason.transfer_request_closed
72
- return transfer_request, cooperation
72
+ return transfer_request, collaboration
73
73
 
74
74
  def _create_new_coordination_tenure(
75
- self, transfer_request: CoordinationTransferRequest, cooperation: Cooperation
75
+ self,
76
+ transfer_request: CoordinationTransferRequest,
77
+ collaboration: Collaboration,
76
78
  ) -> UUID:
77
79
  new_tenure = self.database_gateway.create_coordination_tenure(
78
80
  company=transfer_request.candidate,
79
- cooperation=cooperation.id,
81
+ collaboration=collaboration.id,
80
82
  start_date=self.datetime_service.now(),
81
83
  )
82
- return new_tenure.cooperation
84
+ return new_tenure.collaboration
83
85
 
84
- def _cooperation_has_a_coordination_tenure_starting_after_transfer_request(
85
- self, transfer_request: CoordinationTransferRequest, cooperation: Cooperation
86
+ def _collaboration_has_a_coordination_tenure_starting_after_transfer_request(
87
+ self,
88
+ transfer_request: CoordinationTransferRequest,
89
+ collaboration: Collaboration,
86
90
  ) -> bool:
87
- latest_coordination_tenure_of_cooperation = (
91
+ latest_coordination_tenure_of_collaboration = (
88
92
  self.database_gateway.get_coordination_tenures()
89
- .of_cooperation(cooperation.id)
93
+ .of_collaboration(collaboration.id)
90
94
  .ordered_by_start_date(ascending=False)
91
95
  .first()
92
96
  )
93
- assert latest_coordination_tenure_of_cooperation
97
+ assert latest_coordination_tenure_of_collaboration
94
98
  return (
95
- latest_coordination_tenure_of_cooperation.start_date
99
+ latest_coordination_tenure_of_collaboration.start_date
96
100
  > transfer_request.request_date
97
101
  )
@@ -5,23 +5,23 @@ from workers_control.core.repositories import DatabaseGateway
5
5
 
6
6
 
7
7
  @dataclass
8
- class CancelCooperationSolicitationRequest:
8
+ class CancelCollaborationSolicitationRequest:
9
9
  requester_id: UUID
10
10
  plan_id: UUID
11
11
 
12
12
 
13
13
  @dataclass
14
- class CancelCooperationSolicitationInteractor:
14
+ class CancelCollaborationSolicitationInteractor:
15
15
  database_gateway: DatabaseGateway
16
16
 
17
- def execute(self, request: CancelCooperationSolicitationRequest) -> bool:
17
+ def execute(self, request: CancelCollaborationSolicitationRequest) -> bool:
18
18
  plans_changed_count = (
19
19
  self.database_gateway.get_plans()
20
20
  .with_id(request.plan_id)
21
21
  .planned_by(request.requester_id)
22
- .that_request_cooperation_with_coordinator()
22
+ .that_request_collaboration_with_coordinator()
23
23
  .update()
24
- .set_requested_cooperation(None)
24
+ .set_requested_collaboration(None)
25
25
  .perform()
26
26
  )
27
27
  return bool(plans_changed_count)
@@ -9,20 +9,20 @@ from workers_control.core.repositories import DatabaseGateway
9
9
 
10
10
 
11
11
  @dataclass
12
- class CreateCooperationRequest:
12
+ class CreateCollaborationRequest:
13
13
  coordinator_id: UUID
14
14
  name: str
15
15
  definition: str
16
16
 
17
17
 
18
18
  @dataclass
19
- class CreateCooperationResponse:
19
+ class CreateCollaborationResponse:
20
20
  class RejectionReason(Exception, Enum):
21
21
  coordinator_not_found = auto()
22
- cooperation_with_name_exists = auto()
22
+ collaboration_with_name_exists = auto()
23
23
 
24
24
  rejection_reason: Optional[RejectionReason]
25
- cooperation_id: Optional[UUID]
25
+ collaboration_id: Optional[UUID]
26
26
 
27
27
  @property
28
28
  def is_rejected(self) -> bool:
@@ -30,19 +30,21 @@ class CreateCooperationResponse:
30
30
 
31
31
 
32
32
  @dataclass
33
- class CreateCooperationInteractor:
33
+ class CreateCollaborationInteractor:
34
34
  datetime_service: DatetimeService
35
35
  database_gateway: DatabaseGateway
36
36
 
37
- def execute(self, request: CreateCooperationRequest) -> CreateCooperationResponse:
37
+ def execute(
38
+ self, request: CreateCollaborationRequest
39
+ ) -> CreateCollaborationResponse:
38
40
  try:
39
41
  coordinator = self._validate_request(request)
40
- except CreateCooperationResponse.RejectionReason as reason:
41
- return CreateCooperationResponse(
42
- rejection_reason=reason, cooperation_id=None
42
+ except CreateCollaborationResponse.RejectionReason as reason:
43
+ return CreateCollaborationResponse(
44
+ rejection_reason=reason, collaboration_id=None
43
45
  )
44
46
  account = self.database_gateway.create_account()
45
- cooperation = self.database_gateway.create_cooperation(
47
+ collaboration = self.database_gateway.create_collaboration(
46
48
  self.datetime_service.now(),
47
49
  request.name,
48
50
  request.definition,
@@ -50,26 +52,26 @@ class CreateCooperationInteractor:
50
52
  )
51
53
  self.database_gateway.create_coordination_tenure(
52
54
  company=coordinator.id,
53
- cooperation=cooperation.id,
55
+ collaboration=collaboration.id,
54
56
  start_date=self.datetime_service.now(),
55
57
  )
56
- return CreateCooperationResponse(
57
- rejection_reason=None, cooperation_id=cooperation.id
58
+ return CreateCollaborationResponse(
59
+ rejection_reason=None, collaboration_id=collaboration.id
58
60
  )
59
61
 
60
- def _validate_request(self, request: CreateCooperationRequest) -> Company:
62
+ def _validate_request(self, request: CreateCollaborationRequest) -> Company:
61
63
  coordinator = (
62
64
  self.database_gateway.get_companies()
63
65
  .with_id(request.coordinator_id)
64
66
  .first()
65
67
  )
66
- coops_with_requested_name = (
67
- self.database_gateway.get_cooperations().with_name_ignoring_case(
68
+ collabs_with_requested_name = (
69
+ self.database_gateway.get_collaborations().with_name_ignoring_case(
68
70
  request.name
69
71
  )
70
72
  )
71
73
  if coordinator is None:
72
- raise CreateCooperationResponse.RejectionReason.coordinator_not_found
73
- if coops_with_requested_name:
74
- raise CreateCooperationResponse.RejectionReason.cooperation_with_name_exists
74
+ raise CreateCollaborationResponse.RejectionReason.coordinator_not_found
75
+ if collabs_with_requested_name:
76
+ raise CreateCollaborationResponse.RejectionReason.collaboration_with_name_exists
75
77
  return coordinator
@@ -0,0 +1,68 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum, auto
3
+ from typing import Optional
4
+ from uuid import UUID
5
+
6
+ from workers_control.core.datetime_service import DatetimeService
7
+ from workers_control.core.repositories import DatabaseGateway
8
+
9
+
10
+ @dataclass
11
+ class DenyCollaborationRequest:
12
+ requester_id: UUID
13
+ plan_id: UUID
14
+ collaboration_id: UUID
15
+
16
+
17
+ @dataclass
18
+ class DenyCollaborationResponse:
19
+ class RejectionReason(Exception, Enum):
20
+ plan_not_found = auto()
21
+ collaboration_not_found = auto()
22
+ collaboration_was_not_requested = auto()
23
+ requester_is_not_coordinator = auto()
24
+ plan_is_inactive = auto()
25
+
26
+ rejection_reason: Optional[RejectionReason]
27
+
28
+ @property
29
+ def is_rejected(self) -> bool:
30
+ return self.rejection_reason is not None
31
+
32
+
33
+ @dataclass
34
+ class DenyCollaborationInteractor:
35
+ database_gateway: DatabaseGateway
36
+ datetime_service: DatetimeService
37
+
38
+ def execute(self, request: DenyCollaborationRequest) -> DenyCollaborationResponse:
39
+ try:
40
+ self._validate_request(request)
41
+ except DenyCollaborationResponse.RejectionReason as reason:
42
+ return DenyCollaborationResponse(rejection_reason=reason)
43
+
44
+ self.database_gateway.get_plans().with_id(
45
+ request.plan_id
46
+ ).update().set_requested_collaboration(None).perform()
47
+ return DenyCollaborationResponse(rejection_reason=None)
48
+
49
+ def _validate_request(self, request: DenyCollaborationRequest) -> None:
50
+ plan = self.database_gateway.get_plans().with_id(request.plan_id).first()
51
+ now = self.datetime_service.now()
52
+ collaboration_and_coordinator = (
53
+ self.database_gateway.get_collaborations()
54
+ .with_id(request.collaboration_id)
55
+ .joined_with_current_coordinator()
56
+ .first()
57
+ )
58
+ if not collaboration_and_coordinator:
59
+ raise DenyCollaborationResponse.RejectionReason.collaboration_not_found
60
+ collaboration, coordinator = collaboration_and_coordinator
61
+ if plan is None:
62
+ raise DenyCollaborationResponse.RejectionReason.plan_not_found
63
+ if not plan.is_active_as_of(now):
64
+ raise DenyCollaborationResponse.RejectionReason.plan_is_inactive
65
+ if plan.requested_collaboration != collaboration.id:
66
+ raise DenyCollaborationResponse.RejectionReason.collaboration_was_not_requested
67
+ if request.requester_id != coordinator.id:
68
+ raise DenyCollaborationResponse.RejectionReason.requester_is_not_coordinator
@@ -0,0 +1,73 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum, auto
3
+ from typing import Optional
4
+ from uuid import UUID
5
+
6
+ from workers_control.core.repositories import DatabaseGateway
7
+
8
+
9
+ @dataclass
10
+ class EndCollaborationRequest:
11
+ requester_id: UUID
12
+ plan_id: UUID
13
+ collaboration_id: UUID
14
+
15
+
16
+ @dataclass
17
+ class EndCollaborationResponse:
18
+ class RejectionReason(Exception, Enum):
19
+ plan_not_found = auto()
20
+ collaboration_not_found = auto()
21
+ plan_has_no_collaboration = auto()
22
+ requester_is_not_authorized = auto()
23
+
24
+ rejection_reason: Optional[RejectionReason]
25
+
26
+ @property
27
+ def is_rejected(self) -> bool:
28
+ return self.rejection_reason is not None
29
+
30
+
31
+ @dataclass
32
+ class EndCollaborationInteractor:
33
+ database_gateway: DatabaseGateway
34
+
35
+ def execute(self, request: EndCollaborationRequest) -> EndCollaborationResponse:
36
+ try:
37
+ self._validate_request(request)
38
+ except EndCollaborationResponse.RejectionReason as reason:
39
+ return EndCollaborationResponse(rejection_reason=reason)
40
+ assert (
41
+ self.database_gateway.get_plans()
42
+ .with_id(request.plan_id)
43
+ .update()
44
+ .set_collaboration(None)
45
+ .perform()
46
+ )
47
+ return EndCollaborationResponse(rejection_reason=None)
48
+
49
+ def _validate_request(self, request: EndCollaborationRequest) -> None:
50
+ plan_and_collaboration = (
51
+ self.database_gateway.get_plans()
52
+ .with_id(request.plan_id)
53
+ .joined_with_collaboration()
54
+ .first()
55
+ )
56
+ collaboration_and_coordinator = (
57
+ self.database_gateway.get_collaborations()
58
+ .with_id(request.collaboration_id)
59
+ .joined_with_current_coordinator()
60
+ .first()
61
+ )
62
+ if not collaboration_and_coordinator:
63
+ raise EndCollaborationResponse.RejectionReason.collaboration_not_found
64
+ if plan_and_collaboration is None:
65
+ raise EndCollaborationResponse.RejectionReason.plan_not_found
66
+ plan, current_collaboration = plan_and_collaboration
67
+ if not current_collaboration:
68
+ raise EndCollaborationResponse.RejectionReason.plan_has_no_collaboration
69
+ coordinator = collaboration_and_coordinator[1]
70
+ if (request.requester_id != coordinator.id) and (
71
+ request.requester_id != plan.planner
72
+ ):
73
+ raise EndCollaborationResponse.RejectionReason.requester_is_not_authorized
@@ -10,9 +10,9 @@ from workers_control.core.services.price_calculator import PriceCalculator
10
10
 
11
11
 
12
12
  @dataclass
13
- class GetCoopSummaryRequest:
13
+ class GetCollabSummaryRequest:
14
14
  requester_id: UUID
15
- coop_id: UUID
15
+ collab_id: UUID
16
16
 
17
17
 
18
18
  @dataclass
@@ -26,50 +26,50 @@ class AssociatedPlan:
26
26
 
27
27
 
28
28
  @dataclass
29
- class GetCoopSummaryResponse:
29
+ class GetCollabSummaryResponse:
30
30
  requester_is_coordinator: bool
31
- coop_id: UUID
32
- coop_name: str
33
- coop_definition: str
31
+ collab_id: UUID
32
+ collab_name: str
33
+ collab_definition: str
34
34
  current_coordinator: UUID
35
35
  current_coordinator_name: str
36
- coop_price: Optional[Decimal]
36
+ collab_price: Optional[Decimal]
37
37
  plans: List[AssociatedPlan]
38
38
 
39
39
 
40
40
  @dataclass
41
- class GetCoopSummaryInteractor:
41
+ class GetCollabSummaryInteractor:
42
42
  database_gateway: DatabaseGateway
43
43
  price_calculator: PriceCalculator
44
44
  datetime_service: DatetimeService
45
45
 
46
46
  def execute(
47
- self, request: GetCoopSummaryRequest
48
- ) -> Optional[GetCoopSummaryResponse]:
49
- coop_and_coordinator = (
50
- self.database_gateway.get_cooperations()
51
- .with_id(request.coop_id)
47
+ self, request: GetCollabSummaryRequest
48
+ ) -> Optional[GetCollabSummaryResponse]:
49
+ collab_and_coordinator = (
50
+ self.database_gateway.get_collaborations()
51
+ .with_id(request.collab_id)
52
52
  .joined_with_current_coordinator()
53
53
  .first()
54
54
  )
55
- if coop_and_coordinator is None:
55
+ if collab_and_coordinator is None:
56
56
  return None
57
- coop, coordinator = coop_and_coordinator
57
+ collab, coordinator = collab_and_coordinator
58
58
  now = self.datetime_service.now()
59
59
  plan_result = (
60
60
  self.database_gateway.get_plans()
61
- .that_are_part_of_cooperation(request.coop_id)
61
+ .that_are_part_of_collaboration(request.collab_id)
62
62
  .that_will_expire_after(now)
63
63
  )
64
64
  plans = list(plan_result)
65
- return GetCoopSummaryResponse(
65
+ return GetCollabSummaryResponse(
66
66
  requester_is_coordinator=coordinator.id == request.requester_id,
67
- coop_id=coop.id,
68
- coop_name=coop.name,
69
- coop_definition=coop.definition,
67
+ collab_id=collab.id,
68
+ collab_name=collab.name,
69
+ collab_definition=collab.definition,
70
70
  current_coordinator=coordinator.id,
71
71
  current_coordinator_name=coordinator.name,
72
- coop_price=self._get_cooperative_price(plans),
72
+ collab_price=self._get_collaborative_price(plans),
73
73
  plans=self._get_associated_plans(plans, request.requester_id),
74
74
  )
75
75
 
@@ -78,7 +78,7 @@ class GetCoopSummaryInteractor:
78
78
  assert planner
79
79
  return planner.name
80
80
 
81
- def _get_cooperative_price(self, plans: list[Plan]) -> Optional[Decimal]:
81
+ def _get_collaborative_price(self, plans: list[Plan]) -> Optional[Decimal]:
82
82
  if not plans:
83
83
  return None
84
84
  return self.price_calculator.calculate_price(plans[0].id)