workers-control 0.2.4__tar.gz → 0.2.5__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 (595) hide show
  1. {workers_control-0.2.4/src/workers_control.egg-info → workers_control-0.2.5}/PKG-INFO +3 -3
  2. {workers_control-0.2.4 → workers_control-0.2.5}/build_support/backend.py +7 -1
  3. {workers_control-0.2.4 → workers_control-0.2.5}/pyproject.toml +8 -14
  4. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_statistics.py +5 -1
  5. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/query_offers.py +2 -2
  6. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_payout_factor_details.py +9 -5
  7. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/repositories.py +1 -1
  8. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/models.py +1 -1
  9. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/repositories.py +37 -28
  10. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/class_based_view.py +3 -3
  11. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/dependency_injection.py +5 -4
  12. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/flask_colors.py +5 -5
  13. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/flask_session.py +2 -2
  14. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/mail_service/__init__.py +6 -6
  15. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/plotter.py +76 -22
  16. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/auth/routes.py +7 -7
  17. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/company/blueprint.py +3 -1
  18. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/company/routes.py +5 -5
  19. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/member/blueprint.py +3 -1
  20. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/member/routes.py +7 -5
  21. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/plots/routes.py +2 -1
  22. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/user/blueprint.py +2 -2
  23. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/user/routes.py +3 -2
  24. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/statistics.html +32 -30
  25. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/translations/de/LC_MESSAGES/messages.po +194 -194
  26. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/translations/en/LC_MESSAGES/messages.po +189 -189
  27. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/translations/es/LC_MESSAGES/messages.po +194 -194
  28. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/translations/messages.pot +150 -189
  29. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/request_cooperation_view.py +5 -2
  30. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/signup_member_view.py +2 -2
  31. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/formatters/datetime_formatter.py +3 -1
  32. workers_control-0.2.5/src/workers_control/web/www/presenters/__init__.py +0 -0
  33. workers_control-0.2.5/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +57 -0
  34. workers_control-0.2.5/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +55 -0
  35. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_plan_details_presenter.py +1 -1
  36. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_statistics_presenter.py +13 -20
  37. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_my_plans_presenter.py +7 -1
  38. {workers_control-0.2.4 → workers_control-0.2.5/src/workers_control.egg-info}/PKG-INFO +3 -3
  39. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control.egg-info/SOURCES.txt +0 -3
  40. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control.egg-info/requires.txt +2 -2
  41. workers_control-0.2.4/src/workers_control/core/interactors/preview_private_consumption.py +0 -46
  42. workers_control-0.2.4/src/workers_control/flask/views/__init__.py +0 -25
  43. workers_control-0.2.4/src/workers_control/web/www/controllers/approve_plan_controller.py +0 -10
  44. workers_control-0.2.4/src/workers_control/web/www/controllers/reject_plan_controller.py +0 -10
  45. workers_control-0.2.4/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +0 -59
  46. workers_control-0.2.4/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +0 -58
  47. {workers_control-0.2.4 → workers_control-0.2.5}/LICENSE +0 -0
  48. {workers_control-0.2.4 → workers_control-0.2.5}/MANIFEST.in +0 -0
  49. {workers_control-0.2.4 → workers_control-0.2.5}/README.rst +0 -0
  50. {workers_control-0.2.4 → workers_control-0.2.5}/build_support/__init__.py +0 -0
  51. {workers_control-0.2.4 → workers_control-0.2.5}/build_support/babel.cfg +0 -0
  52. {workers_control-0.2.4 → workers_control-0.2.5}/build_support/project.py +0 -0
  53. {workers_control-0.2.4 → workers_control-0.2.5}/build_support/translations.py +0 -0
  54. {workers_control-0.2.4 → workers_control-0.2.5}/setup.cfg +0 -0
  55. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/__init__.py +0 -0
  56. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/accountant_notifications.py +0 -0
  57. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/anonymization.py +0 -0
  58. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/control_thresholds.py +0 -0
  59. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/datetime_service.py +0 -0
  60. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/decimal.py +0 -0
  61. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/email.py +0 -0
  62. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/email_notifications.py +0 -0
  63. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/injector.py +0 -0
  64. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/__init__.py +0 -0
  65. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/accept_cooperation.py +0 -0
  66. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/accept_coordination_transfer.py +0 -0
  67. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/answer_company_work_invite.py +0 -0
  68. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/approve_plan.py +0 -0
  69. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/cancel_cooperation_solicitation.py +0 -0
  70. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/change_user_email_address.py +0 -0
  71. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/change_user_name.py +0 -0
  72. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/change_user_password.py +0 -0
  73. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/confirm_company.py +0 -0
  74. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/confirm_member.py +0 -0
  75. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/create_basic_service.py +0 -0
  76. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/create_cooperation.py +0 -0
  77. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/create_draft_from_plan.py +0 -0
  78. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/create_plan_draft.py +0 -0
  79. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/deactivate_basic_service.py +0 -0
  80. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/delete_draft.py +0 -0
  81. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/deny_cooperation.py +0 -0
  82. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/edit_draft.py +0 -0
  83. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/end_cooperation.py +0 -0
  84. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/file_plan_with_accounting.py +0 -0
  85. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_accountant_dashboard.py +0 -0
  86. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_company_dashboard.py +0 -0
  87. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_company_summary.py +0 -0
  88. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_coop_summary.py +0 -0
  89. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_coordination_transfer_request_details.py +0 -0
  90. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_draft_details.py +0 -0
  91. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_member_dashboard.py +0 -0
  92. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_plan_details.py +0 -0
  93. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_plan_for_review.py +0 -0
  94. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_private_consumption_details.py +0 -0
  95. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_productive_consumption_details.py +0 -0
  96. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/get_user_account_details.py +0 -0
  97. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/hide_plan.py +0 -0
  98. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/invite_worker_to_company.py +0 -0
  99. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_active_plans_of_company.py +0 -0
  100. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_all_cooperations.py +0 -0
  101. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_available_languages.py +0 -0
  102. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_basic_services_of_worker.py +0 -0
  103. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_coordinations_of_company.py +0 -0
  104. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_coordinations_of_cooperation.py +0 -0
  105. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_my_cooperating_plans.py +0 -0
  106. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_pending_work_invites.py +0 -0
  107. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_plans_with_pending_review.py +0 -0
  108. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_registered_hours_worked.py +0 -0
  109. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_transfers.py +0 -0
  110. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/list_workers.py +0 -0
  111. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/log_in_accountant.py +0 -0
  112. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/log_in_company.py +0 -0
  113. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/log_in_member.py +0 -0
  114. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/query_companies.py +0 -0
  115. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/query_company_consumptions.py +0 -0
  116. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/query_private_consumptions.py +0 -0
  117. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_accountant.py +0 -0
  118. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_company.py +0 -0
  119. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_hours_worked.py +0 -0
  120. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_member.py +0 -0
  121. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_private_consumption.py +0 -0
  122. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_private_consumption_of_basic_service.py +0 -0
  123. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_productive_consumption.py +0 -0
  124. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/register_productive_consumption_of_basic_service.py +0 -0
  125. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/reject_plan.py +0 -0
  126. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/remove_worker_from_company.py +0 -0
  127. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/request_cooperation.py +0 -0
  128. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/request_coordination_transfer.py +0 -0
  129. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/request_email_address_change.py +0 -0
  130. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/request_user_password_reset.py +0 -0
  131. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/resend_confirmation_mail.py +0 -0
  132. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/resend_work_invite.py +0 -0
  133. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/review_registered_consumptions.py +0 -0
  134. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/revoke_plan_filing.py +0 -0
  135. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/select_private_consumption.py +0 -0
  136. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/select_private_consumption_of_basic_service.py +0 -0
  137. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/select_productive_consumption.py +0 -0
  138. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/select_productive_consumption_of_basic_service.py +0 -0
  139. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/send_accountant_registration_token.py +0 -0
  140. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_a_account_details.py +0 -0
  141. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_basic_service.py +0 -0
  142. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_company_accounts.py +0 -0
  143. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_company_cooperations.py +0 -0
  144. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_company_work_invite_details.py +0 -0
  145. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_member_account_details.py +0 -0
  146. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_my_plans.py +0 -0
  147. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_p_account_details.py +0 -0
  148. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_prd_account_details.py +0 -0
  149. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_psf_account_details.py +0 -0
  150. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/interactors/show_r_account_details.py +0 -0
  151. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/password_hasher.py +0 -0
  152. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/records.py +0 -0
  153. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/__init__.py +0 -0
  154. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/account_details.py +0 -0
  155. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/compensation_transfers.py +0 -0
  156. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/payout_factor.py +0 -0
  157. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/price_calculator.py +0 -0
  158. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/services/psf_balance.py +0 -0
  159. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/core/transfers.py +0 -0
  160. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/__init__.py +0 -0
  161. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/db.py +0 -0
  162. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/alembic.ini +0 -0
  163. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/env.py +0 -0
  164. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/script.py.mako +0 -0
  165. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/17911726c134_add_deactivated_on_to_basic_service.py +0 -0
  166. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/399a221ebea4_add_private_consumption_of_basic_.py +0 -0
  167. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/480a749375de_drop_transaction_table.py +0 -0
  168. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/4fd90069eb82_remove_social_accounting_account.py +0 -0
  169. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/686f2af1cbfe_add_basic_service_transfer_types.py +0 -0
  170. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/68ac7ccf6086_create_table_emailoutbox.py +0 -0
  171. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/7a4d0412c2a7_add_productive_consumption_of_basic_.py +0 -0
  172. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/a3e7b2c1d4f5_use_native_uuid_column_types.py +0 -0
  173. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/b40539bf0293_add_basic_service_table.py +0 -0
  174. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/c5e8a9d0f1b2_add_taxes_to_basic_service_consumptions.py +0 -0
  175. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/c9f2e1a4b8d7_add_outbox_status_columns.py +0 -0
  176. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/db/migrations/versions/f4a9c2e1b6d3_replace_plan_review_with_plan_rejection.py +0 -0
  177. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/email_sending_worker/__init__.py +0 -0
  178. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/email_sending_worker/interface.py +0 -0
  179. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/email_sending_worker/smtp_service.py +0 -0
  180. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/email_sending_worker/worker.py +0 -0
  181. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/__init__.py +0 -0
  182. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/babel.py +0 -0
  183. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/commands.py +0 -0
  184. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/config/__init__.py +0 -0
  185. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/config/checks.py +0 -0
  186. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/config/loader.py +0 -0
  187. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/config/options.py +0 -0
  188. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/config/production_defaults.py +0 -0
  189. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/context_processors.py +0 -0
  190. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/control_thresholds.py +0 -0
  191. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/database.py +0 -0
  192. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/datetime.py +0 -0
  193. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/email_configuration.py +0 -0
  194. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/extensions.py +0 -0
  195. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/filters.py +0 -0
  196. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/flask_request.py +0 -0
  197. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/forms.py +0 -0
  198. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/language_repository.py +0 -0
  199. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/logging_config.json +0 -0
  200. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/mail_sender/__init__.py +0 -0
  201. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/mail_service/interface.py +0 -0
  202. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/mail_service/mail_storage_service.py +0 -0
  203. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/notifications.py +0 -0
  204. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/password_hasher.py +0 -0
  205. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/payout_factor.py +0 -0
  206. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/profiling.py +0 -0
  207. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/__init__.py +0 -0
  208. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/accountant/__init__.py +0 -0
  209. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/accountant/blueprint.py +0 -0
  210. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/accountant/routes.py +0 -0
  211. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/auth/__init__.py +0 -0
  212. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/company/__init__.py +0 -0
  213. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/healthcheck/__init__.py +0 -0
  214. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/healthcheck/blueprint.py +0 -0
  215. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/member/__init__.py +0 -0
  216. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/plots/__init__.py +0 -0
  217. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/routes/user/__init__.py +0 -0
  218. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/bulma.css +0 -0
  219. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/colors.css +0 -0
  220. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/favicon.ico +0 -0
  221. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/main.css +0 -0
  222. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/main.js +0 -0
  223. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/static/main.module.js +0 -0
  224. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/accountant/dashboard.html +0 -0
  225. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/accountant/notification-about-new-plan.html +0 -0
  226. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/accountant/plans-to-review-list.html +0 -0
  227. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/accountant/review_plan.html +0 -0
  228. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/accountant_invitation.html +0 -0
  229. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/activate.html +0 -0
  230. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/help.html +0 -0
  231. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/login_accountant.html +0 -0
  232. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/login_company.html +0 -0
  233. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/login_member.html +0 -0
  234. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/password_reset_confirmation_email.html +0 -0
  235. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/request_password_reset.html +0 -0
  236. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/reset_password.html +0 -0
  237. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/reset_password_email.html +0 -0
  238. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/reset_password_invalid.html +0 -0
  239. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/signup_accountant.html +0 -0
  240. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/signup_company.html +0 -0
  241. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/signup_member.html +0 -0
  242. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/start.html +0 -0
  243. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/unconfirmed_company.html +0 -0
  244. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/auth/unconfirmed_member.html +0 -0
  245. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/base.html +0 -0
  246. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/consumption_details.html +0 -0
  247. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/create_cooperation.html +0 -0
  248. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/create_draft.html +0 -0
  249. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/dashboard.html +0 -0
  250. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/draft_details.html +0 -0
  251. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/invite_worker_to_company.html +0 -0
  252. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/list_pending_work_invites.html +0 -0
  253. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/list_registered_hours_worked.html +0 -0
  254. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/my_consumptions.html +0 -0
  255. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/my_cooperations.html +0 -0
  256. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/my_plans.html +0 -0
  257. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/register_hours_worked.html +0 -0
  258. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/register_productive_consumption.html +0 -0
  259. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/register_productive_consumption_of_basic_service.html +0 -0
  260. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/rejected_plan_notification.html +0 -0
  261. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/remove_worker_from_company.html +0 -0
  262. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/request_cooperation.html +0 -0
  263. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/request_coordination_transfer.html +0 -0
  264. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/review_registered_consumptions.html +0 -0
  265. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/company/show_coordination_transfer_request.html +0 -0
  266. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/at.html +0 -0
  267. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/basket-shopping.html +0 -0
  268. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/book.html +0 -0
  269. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/calendar.html +0 -0
  270. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/chart-line.html +0 -0
  271. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/chart-pie.html +0 -0
  272. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/check.html +0 -0
  273. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/copy.html +0 -0
  274. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/credit-card.html +0 -0
  275. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/edit.html +0 -0
  276. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/envelope.html +0 -0
  277. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/exchange-alt.html +0 -0
  278. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/exclamation-triangle.html +0 -0
  279. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/eye-slashed.html +0 -0
  280. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/eye.html +0 -0
  281. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/file-circle-plus.html +0 -0
  282. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/file.html +0 -0
  283. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/hands-helping.html +0 -0
  284. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/hourglass.html +0 -0
  285. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/industry.html +0 -0
  286. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/info-circle.html +0 -0
  287. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/key.html +0 -0
  288. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/list.html +0 -0
  289. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/oil-can.html +0 -0
  290. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/redo.html +0 -0
  291. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/square-arrow-up-right.html +0 -0
  292. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/times.html +0 -0
  293. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/trash.html +0 -0
  294. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/user.html +0 -0
  295. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/icons/users.html +0 -0
  296. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/company_summary.html +0 -0
  297. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/copy_toggle.html +0 -0
  298. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/draft_form.html +0 -0
  299. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/form_field_error.html +0 -0
  300. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/language_selection.html +0 -0
  301. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/navbar.html +0 -0
  302. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/navigation.html +0 -0
  303. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/pagination.html +0 -0
  304. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/plan_details.html +0 -0
  305. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/show_notifications.html +0 -0
  306. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/tooltips.html +0 -0
  307. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/macros/transfers.html +0 -0
  308. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/basic_services.html +0 -0
  309. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/consumption_details.html +0 -0
  310. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/consumptions.html +0 -0
  311. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/create_basic_service.html +0 -0
  312. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/dashboard.html +0 -0
  313. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/my_account.html +0 -0
  314. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/notification-about-work-invitation.html +0 -0
  315. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/register_private_consumption.html +0 -0
  316. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/register_private_consumption_of_basic_service.html +0 -0
  317. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/member/show_company_work_invite_details.html +0 -0
  318. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/account_details.html +0 -0
  319. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/account_psf.html +0 -0
  320. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/change_user_name.html +0 -0
  321. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_account_a.html +0 -0
  322. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_account_p.html +0 -0
  323. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_account_prd.html +0 -0
  324. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_account_r.html +0 -0
  325. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_accounts.html +0 -0
  326. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/company_summary.html +0 -0
  327. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/confirm_email_address_change.html +0 -0
  328. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/coop_summary.html +0 -0
  329. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/http_error.html +0 -0
  330. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/list_all_cooperations.html +0 -0
  331. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/list_coordinations_of_cooperation.html +0 -0
  332. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/list_transfers.html +0 -0
  333. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/name_change_confirmation.html +0 -0
  334. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/plan_details.html +0 -0
  335. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/query_companies.html +0 -0
  336. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/query_offers.html +0 -0
  337. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/request_email_address_change.html +0 -0
  338. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/request_email_change_notification.html +0 -0
  339. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/request_email_change_warning.html +0 -0
  340. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/show_basic_service.html +0 -0
  341. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/templates/user/show_payout_factor_details.html +0 -0
  342. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/text_renderer.py +0 -0
  343. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/token.py +0 -0
  344. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/translator.py +0 -0
  345. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/types.py +0 -0
  346. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/url_index.py +0 -0
  347. {workers_control-0.2.4/src/workers_control/web → workers_control-0.2.5/src/workers_control/flask/views}/__init__.py +0 -0
  348. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/accept_cooperation_request_view.py +0 -0
  349. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/accountant_invitation_email_view.py +0 -0
  350. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/cancel_cooperation_request_view.py +0 -0
  351. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/change_email_address_view.py +0 -0
  352. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/change_user_name_view.py +0 -0
  353. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/company_dashboard_view.py +0 -0
  354. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/company_work_invite_view.py +0 -0
  355. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/coop_summary_view.py +0 -0
  356. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/create_basic_service_view.py +0 -0
  357. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/create_cooperation_view.py +0 -0
  358. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/create_draft_from_plan_view.py +0 -0
  359. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/create_draft_view.py +0 -0
  360. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/deactivate_basic_service_view.py +0 -0
  361. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/delete_draft_view.py +0 -0
  362. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/deny_cooperation_view.py +0 -0
  363. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/draft_details_view.py +0 -0
  364. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/end_cooperation_view.py +0 -0
  365. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/end_plan_cooperation_view.py +0 -0
  366. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/file_plan_with_accounting_view.py +0 -0
  367. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/get_plan_details_view.py +0 -0
  368. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/get_private_consumption_details.py +0 -0
  369. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/get_productive_consumption_details.py +0 -0
  370. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/get_statistics_view.py +0 -0
  371. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/healthcheck_view.py +0 -0
  372. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/hide_plan_view.py +0 -0
  373. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/http_error_view.py +0 -0
  374. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/invite_worker_to_company.py +0 -0
  375. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_all_cooperations_view.py +0 -0
  376. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_basic_services_of_worker_view.py +0 -0
  377. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_coordinators_of_cooperation_view.py +0 -0
  378. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_pending_work_invites_view.py +0 -0
  379. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_registered_hours_worked_view.py +0 -0
  380. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/list_transfers.py +0 -0
  381. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/log_in_accountant_view.py +0 -0
  382. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/log_in_company_view.py +0 -0
  383. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/log_in_member_view.py +0 -0
  384. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/member_dashboard_view.py +0 -0
  385. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/query_companies.py +0 -0
  386. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/query_company_consumptions_view.py +0 -0
  387. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/query_offers.py +0 -0
  388. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/query_private_consumptions.py +0 -0
  389. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/register_hours_worked_view.py +0 -0
  390. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/register_private_consumption.py +0 -0
  391. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/register_private_consumption_of_basic_service_view.py +0 -0
  392. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/register_productive_consumption.py +0 -0
  393. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/register_productive_consumption_of_basic_service_view.py +0 -0
  394. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/remove_worker_from_company_view.py +0 -0
  395. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/request_coordination_transfer_view.py +0 -0
  396. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/request_email_address_change_view.py +0 -0
  397. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/request_password_reset_view.py +0 -0
  398. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/resend_confirmation_view.py +0 -0
  399. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/reset_password_view.py +0 -0
  400. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/review_plan_view.py +0 -0
  401. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/review_registered_consumptions_view.py +0 -0
  402. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/revoke_plan_filing_view.py +0 -0
  403. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_a_account_details_view.py +0 -0
  404. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_basic_service_view.py +0 -0
  405. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_company_accounts_view.py +0 -0
  406. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_coordination_transfer_request_view.py +0 -0
  407. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_member_account_details_view.py +0 -0
  408. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_my_cooperations_view.py +0 -0
  409. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_my_plans_view.py +0 -0
  410. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_p_account_details_view.py +0 -0
  411. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_payout_factor_details_view.py +0 -0
  412. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_prd_account_details_view.py +0 -0
  413. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_psf_account_details_view.py +0 -0
  414. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/show_r_account_details_view.py +0 -0
  415. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/signup_accountant_view.py +0 -0
  416. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/views/signup_company_view.py +0 -0
  417. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/flask/wsgi.py +0 -0
  418. {workers_control-0.2.4/src/workers_control/web/formatters → workers_control-0.2.5/src/workers_control/web}/__init__.py +0 -0
  419. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/colors.py +0 -0
  420. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/__init__.py +0 -0
  421. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/accountant_invitation_presenter.py +0 -0
  422. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/company_notifier.py +0 -0
  423. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/cooperation_request_email_presenter.py +0 -0
  424. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/email_change_confirmation_presenter.py +0 -0
  425. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/email_change_warning_view.py +0 -0
  426. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/email_sender.py +0 -0
  427. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/invite_worker_presenter.py +0 -0
  428. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/name_change_confirmation_presenter.py +0 -0
  429. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/notify_about_worker_removal_from_company_presenter.py +0 -0
  430. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/notify_accountant_about_new_plan_presenter.py +0 -0
  431. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/registration_email_presenter.py +0 -0
  432. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/request_coordination_transfer_presenter.py +0 -0
  433. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/email/reset_password_email_presenter.py +0 -0
  434. {workers_control-0.2.4/src/workers_control/web/www → workers_control-0.2.5/src/workers_control/web/formatters}/__init__.py +0 -0
  435. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/forms/__init__.py +0 -0
  436. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/forms/fields.py +0 -0
  437. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/forms/formfield_parsers.py +0 -0
  438. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/json.py +0 -0
  439. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/language_service.py +0 -0
  440. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/malformed_input_data.py +0 -0
  441. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/notification.py +0 -0
  442. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/pagination.py +0 -0
  443. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/request.py +0 -0
  444. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/session.py +0 -0
  445. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/text_renderer.py +0 -0
  446. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/token.py +0 -0
  447. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/translator.py +0 -0
  448. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/url_index.py +0 -0
  449. {workers_control-0.2.4/src/workers_control/web/www/controllers → workers_control-0.2.5/src/workers_control/web/www}/__init__.py +0 -0
  450. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/authentication.py +0 -0
  451. {workers_control-0.2.4/src/workers_control/web/www/presenters → workers_control-0.2.5/src/workers_control/web/www/controllers}/__init__.py +0 -0
  452. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/accept_coordination_transfer_controller.py +0 -0
  453. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/answer_company_work_invite_controller.py +0 -0
  454. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/change_user_email_address_controller.py +0 -0
  455. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/change_user_name_controller.py +0 -0
  456. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/confirm_company_controller.py +0 -0
  457. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/confirm_member_controller.py +0 -0
  458. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/create_basic_service_controller.py +0 -0
  459. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/create_draft_controller.py +0 -0
  460. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/create_draft_from_plan_controller.py +0 -0
  461. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/deactivate_basic_service_controller.py +0 -0
  462. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/delete_draft_controller.py +0 -0
  463. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/draft_form_validator.py +0 -0
  464. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/edit_draft_controller.py +0 -0
  465. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/end_cooperation_controller.py +0 -0
  466. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/file_plan_with_accounting_controller.py +0 -0
  467. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/get_private_consumption_details_controller.py +0 -0
  468. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/get_productive_consumption_details_controller.py +0 -0
  469. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/invite_worker_to_company_controller.py +0 -0
  470. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/list_basic_services_of_worker_controller.py +0 -0
  471. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/list_pending_work_invites_controller.py +0 -0
  472. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/list_registered_hours_worked_controller.py +0 -0
  473. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/list_transfers_controller.py +0 -0
  474. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/list_workers_controller.py +0 -0
  475. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/log_in_accountant_controller.py +0 -0
  476. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/query_companies_controller.py +0 -0
  477. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/query_offers_controller.py +0 -0
  478. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/query_private_consumptions_controller.py +0 -0
  479. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_accountant_controller.py +0 -0
  480. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_company_controller.py +0 -0
  481. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_hours_worked_controller.py +0 -0
  482. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_member_controller.py +0 -0
  483. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_private_consumption_controller.py +0 -0
  484. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_private_consumption_form_validator.py +0 -0
  485. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_controller.py +0 -0
  486. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_form_validator.py +0 -0
  487. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_productive_consumption_controller.py +0 -0
  488. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_controller.py +0 -0
  489. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_form_validator.py +0 -0
  490. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/remove_worker_from_company_controller.py +0 -0
  491. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/request_cooperation_controller.py +0 -0
  492. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/request_coordination_transfer_controller.py +0 -0
  493. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/request_email_address_change_controller.py +0 -0
  494. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/request_password_reset_controller.py +0 -0
  495. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/resend_work_invite_controller.py +0 -0
  496. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/reset_password_controller.py +0 -0
  497. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/review_plan_controller.py +0 -0
  498. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/review_registered_consumptions_controller.py +0 -0
  499. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/revoke_plan_filing_controller.py +0 -0
  500. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/select_private_consumption_controller.py +0 -0
  501. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/select_private_consumption_of_basic_service_controller.py +0 -0
  502. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/select_productive_consumption_controller.py +0 -0
  503. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/select_productive_consumption_of_basic_service_controller.py +0 -0
  504. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_a_account_details_controller.py +0 -0
  505. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_basic_service_controller.py +0 -0
  506. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_company_accounts_controller.py +0 -0
  507. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_company_work_invite_details_controller.py +0 -0
  508. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_p_account_details_controller.py +0 -0
  509. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_prd_account_details_controller.py +0 -0
  510. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/show_r_account_details_controller.py +0 -0
  511. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/controllers/user_account_details_controller.py +0 -0
  512. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/navbar.py +0 -0
  513. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/accept_coordination_transfer_presenter.py +0 -0
  514. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/answer_company_work_invite_presenter.py +0 -0
  515. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/approve_plan_presenter.py +0 -0
  516. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/cancel_cooperation_request_presenter.py +0 -0
  517. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/change_user_email_address_presenter.py +0 -0
  518. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/change_user_name_presenter.py +0 -0
  519. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/company_consumptions_presenter.py +0 -0
  520. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/create_basic_service_presenter.py +0 -0
  521. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/create_cooperation_presenter.py +0 -0
  522. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/create_draft_from_plan_presenter.py +0 -0
  523. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/create_draft_presenter.py +0 -0
  524. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/deactivate_basic_service_presenter.py +0 -0
  525. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/delete_draft_presenter.py +0 -0
  526. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/edit_draft_presenter.py +0 -0
  527. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/end_cooperation_presenter.py +0 -0
  528. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/end_plan_cooperation_presenter.py +0 -0
  529. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/file_plan_with_accounting_presenter.py +0 -0
  530. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_accountant_dashboard_presenter.py +0 -0
  531. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_company_dashboard_presenter.py +0 -0
  532. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_company_summary_presenter.py +0 -0
  533. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_coop_summary_presenter.py +0 -0
  534. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_coordination_transfer_request_details_presenter.py +0 -0
  535. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_draft_details_presenter.py +0 -0
  536. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_member_dashboard_presenter.py +0 -0
  537. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/get_plan_for_review_presenter.py +0 -0
  538. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/hide_plan_presenter.py +0 -0
  539. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/invite_worker_to_company_presenter.py +0 -0
  540. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_all_cooperations_presenter.py +0 -0
  541. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_available_languages_presenter.py +0 -0
  542. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_basic_services_of_worker_presenter.py +0 -0
  543. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_coordinations_of_cooperation_presenter.py +0 -0
  544. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_pending_work_invites_presenter.py +0 -0
  545. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_plans_presenter.py +0 -0
  546. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_plans_with_pending_review_presenter.py +0 -0
  547. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_registered_hours_worked_presenter.py +0 -0
  548. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_transfers_presenter.py +0 -0
  549. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/list_workers_presenter.py +0 -0
  550. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/log_in_accountant_presenter.py +0 -0
  551. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/log_in_company_presenter.py +0 -0
  552. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/log_in_member_presenter.py +0 -0
  553. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/private_consumption_details_presenter.py +0 -0
  554. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/private_consumptions_presenter.py +0 -0
  555. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/productive_consumption_details_presenter.py +0 -0
  556. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/query_companies_presenter.py +0 -0
  557. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/query_offers_presenter.py +0 -0
  558. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_accountant_presenter.py +0 -0
  559. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_company_presenter.py +0 -0
  560. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_hours_worked_presenter.py +0 -0
  561. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_member_presenter.py +0 -0
  562. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_private_consumption_of_basic_service_presenter.py +0 -0
  563. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_private_consumption_presenter.py +0 -0
  564. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_productive_consumption_of_basic_service_presenter.py +0 -0
  565. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/register_productive_consumption_presenter.py +0 -0
  566. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/reject_plan_presenter.py +0 -0
  567. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/remove_worker_from_company_presenter.py +0 -0
  568. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/request_cooperation_presenter.py +0 -0
  569. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/request_coordination_transfer_presenter.py +0 -0
  570. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/request_email_address_change_presenter.py +0 -0
  571. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/request_password_reset_presenter.py +0 -0
  572. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/resend_work_invite_presenter.py +0 -0
  573. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/reset_password_presenter.py +0 -0
  574. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/review_registered_consumptions_presenter.py +0 -0
  575. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/revoke_plan_filing_presenter.py +0 -0
  576. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/select_private_consumption_of_basic_service_presenter.py +0 -0
  577. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/select_private_consumption_presenter.py +0 -0
  578. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/select_productive_consumption_of_basic_service_presenter.py +0 -0
  579. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/select_productive_consumption_presenter.py +0 -0
  580. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_a_account_details_presenter.py +0 -0
  581. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_basic_service_presenter.py +0 -0
  582. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_company_accounts_presenter.py +0 -0
  583. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_company_work_invite_details_presenter.py +0 -0
  584. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_member_account_details_presenter.py +0 -0
  585. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_my_cooperations_presenter.py +0 -0
  586. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_p_account_details_presenter.py +0 -0
  587. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_payout_factor_details_presenter.py +0 -0
  588. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_prd_account_details_presenter.py +0 -0
  589. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_psf_account_details_presenter.py +0 -0
  590. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/show_r_account_details_presenter.py +0 -0
  591. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/transfers.py +0 -0
  592. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/presenters/user_account_details_presenter.py +0 -0
  593. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control/web/www/response.py +0 -0
  594. {workers_control-0.2.4 → workers_control-0.2.5}/src/workers_control.egg-info/dependency_links.txt +0 -0
  595. {workers_control-0.2.4 → workers_control-0.2.5}/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.5
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.5"
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
  ]
@@ -19,6 +19,7 @@ class StatisticsResponse:
19
19
  planned_work: Decimal
20
20
  planned_resources: Decimal
21
21
  planned_means: Decimal
22
+ public_sector_labour: Decimal
22
23
  payout_factor: Decimal
23
24
  psf_balance: Decimal
24
25
 
@@ -39,13 +40,15 @@ class GetStatisticsInteractor:
39
40
  .that_will_expire_after(now)
40
41
  .that_were_approved_before(now)
41
42
  )
43
+ active_public_plans = active_plans.that_are_public()
42
44
  planning_statistics = active_plans.get_statistics()
45
+ public_planning_statistics = active_public_plans.get_statistics()
43
46
  return StatisticsResponse(
44
47
  registered_companies_count=len(self.database.get_companies()),
45
48
  registered_members_count=len(self.database.get_members()),
46
49
  cooperations_count=len(self.database.get_cooperations()),
47
50
  active_plans_count=len(active_plans),
48
- active_plans_public_count=len(active_plans.that_are_public()),
51
+ active_plans_public_count=len(active_public_plans),
49
52
  active_basic_services_count=len(
50
53
  self.database.get_basic_services().that_are_active()
51
54
  ),
@@ -53,6 +56,7 @@ class GetStatisticsInteractor:
53
56
  planned_work=planning_statistics.total_planned_costs.labour_cost,
54
57
  planned_resources=planning_statistics.total_planned_costs.resource_cost,
55
58
  planned_means=planning_statistics.total_planned_costs.means_cost,
59
+ public_sector_labour=public_planning_statistics.total_planned_costs.labour_cost,
56
60
  payout_factor=fic,
57
61
  psf_balance=psf_balance,
58
62
  )
@@ -4,7 +4,7 @@ import enum
4
4
  from dataclasses import dataclass
5
5
  from datetime import datetime
6
6
  from decimal import Decimal
7
- from typing import List, Optional
7
+ from typing import Any, Callable, List, Optional
8
8
  from uuid import UUID
9
9
 
10
10
  from workers_control.core import records
@@ -157,7 +157,7 @@ class QueryOffersInteractor:
157
157
  return basic_services.ordered_by_provider_name()
158
158
  return basic_services.ordered_by_creation_date(ascending=False)
159
159
 
160
- def _sort_key(self, sort_by: OfferSorting):
160
+ def _sort_key(self, sort_by: OfferSorting) -> Callable[[QueriedOffer], Any]:
161
161
  if sort_by == OfferSorting.by_provider_name:
162
162
  return lambda offer: offer.provider_name.lower()
163
163
  return lambda offer: -offer.created_or_approved_on.timestamp()
@@ -21,6 +21,8 @@ class Response:
21
21
  window_size_in_days: int
22
22
  window_start: datetime
23
23
  window_end: datetime
24
+ display_start: datetime
25
+ display_end: datetime
24
26
  plans: list[PlanData]
25
27
  basic_service_consumptions: list[BasicServiceConsumptionData]
26
28
 
@@ -54,7 +56,9 @@ class ShowPayoutFactorDetailsInteractor:
54
56
  window_size_in_days = self.payout_factor_config.get_window_length_in_days()
55
57
  window_start = now - timedelta(days=window_size_in_days / 2)
56
58
  window_end = now + timedelta(days=window_size_in_days / 2)
57
- plan_records = self._get_plans_sorted(now, window_size_in_days)
59
+ display_start = now - timedelta(days=window_size_in_days)
60
+ display_end = now + timedelta(days=window_size_in_days)
61
+ plan_records = self._get_plans_sorted(display_start)
58
62
 
59
63
  plans = [
60
64
  self._create_plan_data(
@@ -74,17 +78,17 @@ class ShowPayoutFactorDetailsInteractor:
74
78
  window_size_in_days=window_size_in_days,
75
79
  window_start=window_start,
76
80
  window_end=window_end,
81
+ display_start=display_start,
82
+ display_end=display_end,
77
83
  plans=plans,
78
84
  basic_service_consumptions=basic_service_consumptions,
79
85
  )
80
86
 
81
- def _get_plans_sorted(
82
- self, now: datetime, window_size_in_days: int
83
- ) -> list[records.Plan]:
87
+ def _get_plans_sorted(self, display_start: datetime) -> list[records.Plan]:
84
88
  relevant_plans = list(
85
89
  self.database_gateway.get_plans()
86
90
  .that_are_approved()
87
- .that_will_expire_after(now - timedelta(days=window_size_in_days))
91
+ .that_will_expire_after(display_start)
88
92
  )
89
93
  plans_sorted = sorted(
90
94
  relevant_plans,
@@ -527,7 +527,7 @@ class AccountCredentialsUpdate(DatabaseUpdate, Protocol):
527
527
 
528
528
 
529
529
  class PasswordResetRequestResult(QueryResult[records.PasswordResetRequest], Protocol):
530
- def with_email_address(self, email_address) -> Self: ...
530
+ def with_email_address(self, email_address: str) -> Self: ...
531
531
 
532
532
  def with_creation_date_after(self, creation_threshold: datetime) -> Self: ...
533
533
 
@@ -136,7 +136,7 @@ class Company(Base):
136
136
  a_account: Mapped[UUID] = mapped_column(Uuid, ForeignKey("account.id"))
137
137
  prd_account: Mapped[UUID] = mapped_column(Uuid, ForeignKey("account.id"))
138
138
 
139
- def __repr__(self):
139
+ def __repr__(self) -> str:
140
140
  return "<Company(name='%s')>" % (self.name,)
141
141
 
142
142
  workers = relationship(
@@ -641,7 +641,7 @@ class MemberQueryResult(SqlQueryResult[records.Member]):
641
641
  def joined_with_email_address(
642
642
  self,
643
643
  ) -> SqlQueryResult[Tuple[records.Member, records.EmailAddress]]:
644
- def mapper(row):
644
+ def mapper(row: Any) -> Tuple[records.Member, records.EmailAddress]:
645
645
  member_orm, email_orm = row
646
646
  return (
647
647
  DatabaseGatewayImpl.member_from_orm(member_orm),
@@ -768,7 +768,7 @@ class CompanyQueryResult(SqlQueryResult[records.Company]):
768
768
  def joined_with_email_address(
769
769
  self,
770
770
  ) -> SqlQueryResult[Tuple[records.Company, records.EmailAddress]]:
771
- def mapper(row):
771
+ def mapper(row: Any) -> Tuple[records.Company, records.EmailAddress]:
772
772
  company_orm, email_orm = row
773
773
  return (
774
774
  DatabaseGatewayImpl.company_from_orm(company_orm),
@@ -884,6 +884,18 @@ class AccountantUpdate:
884
884
  return rowcount
885
885
 
886
886
 
887
+ class AccountOwnerAliases:
888
+ """Aliases for all ORM models that can own an account. One instance
889
+ is needed per side (debtor, creditor) of a transfer query.
890
+ """
891
+
892
+ def __init__(self) -> None:
893
+ self.member = aliased(models.Member)
894
+ self.company = aliased(models.Company)
895
+ self.social_accounting = aliased(models.SocialAccounting)
896
+ self.cooperation = aliased(models.Cooperation)
897
+
898
+
887
899
  class TransferQueryResult(SqlQueryResult[records.Transfer]):
888
900
  def where_account_is_debtor(self, *account: UUID) -> Self:
889
901
  accounts = list(account)
@@ -1092,14 +1104,7 @@ class TransferQueryResult(SqlQueryResult[records.Transfer]):
1092
1104
  db=self.db,
1093
1105
  )
1094
1106
 
1095
- def _create_account_owner_aliases(self):
1096
- class AccountOwnerAliases:
1097
- def __init__(self):
1098
- self.member = aliased(models.Member)
1099
- self.company = aliased(models.Company)
1100
- self.social_accounting = aliased(models.SocialAccounting)
1101
- self.cooperation = aliased(models.Cooperation)
1102
-
1107
+ def _create_account_owner_aliases(self) -> AccountOwnerAliases:
1103
1108
  return AccountOwnerAliases()
1104
1109
 
1105
1110
  @classmethod
@@ -1136,7 +1141,11 @@ class TransferQueryResult(SqlQueryResult[records.Transfer]):
1136
1141
 
1137
1142
  @classmethod
1138
1143
  def _determine_account_owner(
1139
- cls, member, company, social_accounting, cooperation
1144
+ cls,
1145
+ member: Optional[Member],
1146
+ company: Optional[Company],
1147
+ social_accounting: Optional[SocialAccounting],
1148
+ cooperation: Optional[models.Cooperation],
1140
1149
  ) -> records.AccountOwner:
1141
1150
  if member:
1142
1151
  return DatabaseGatewayImpl.member_from_orm(member)
@@ -1312,7 +1321,7 @@ class ProductiveConsumptionResult(SqlQueryResult[records.ProductiveConsumption])
1312
1321
  Tuple[records.ProductiveConsumption, records.Transfer, records.Plan]
1313
1322
  ]:
1314
1323
  def mapper(
1315
- orm,
1324
+ orm: Any,
1316
1325
  ) -> Tuple[records.ProductiveConsumption, records.Transfer, records.Plan]:
1317
1326
  consumption_orm, transfer_orm, plan_orm = orm
1318
1327
  return (
@@ -1339,7 +1348,7 @@ class ProductiveConsumptionResult(SqlQueryResult[records.ProductiveConsumption])
1339
1348
  self,
1340
1349
  ) -> SqlQueryResult[Tuple[records.ProductiveConsumption, records.Transfer]]:
1341
1350
  def mapper(
1342
- orm,
1351
+ orm: Any,
1343
1352
  ) -> Tuple[records.ProductiveConsumption, records.Transfer]:
1344
1353
  consumption_orm, transfer_orm = orm
1345
1354
  return (
@@ -1364,7 +1373,7 @@ class ProductiveConsumptionResult(SqlQueryResult[records.ProductiveConsumption])
1364
1373
  Tuple[records.ProductiveConsumption, records.Transfer, records.Company]
1365
1374
  ]:
1366
1375
  def mapper(
1367
- orm,
1376
+ orm: Any,
1368
1377
  ) -> Tuple[records.ProductiveConsumption, records.Transfer, records.Company]:
1369
1378
  consumption_orm, transfer_orm, provider_orm = orm
1370
1379
  return (
@@ -1400,7 +1409,7 @@ class ProductiveConsumptionResult(SqlQueryResult[records.ProductiveConsumption])
1400
1409
  ]
1401
1410
  ]:
1402
1411
  def mapper(
1403
- orm,
1412
+ orm: Any,
1404
1413
  ) -> Tuple[
1405
1414
  records.ProductiveConsumption,
1406
1415
  records.Transfer,
@@ -1499,7 +1508,7 @@ class PrivateConsumptionResult(SqlQueryResult[records.PrivateConsumption]):
1499
1508
  Tuple[records.PrivateConsumption, records.Transfer, records.Plan]
1500
1509
  ]:
1501
1510
  def mapper(
1502
- orm,
1511
+ orm: Any,
1503
1512
  ) -> Tuple[records.PrivateConsumption, records.Transfer, records.Plan]:
1504
1513
  consumption_orm, transfer_orm, plan_orm = orm
1505
1514
  return (
@@ -1533,7 +1542,7 @@ class PrivateConsumptionResult(SqlQueryResult[records.PrivateConsumption]):
1533
1542
  ]
1534
1543
  ]:
1535
1544
  def mapper(
1536
- orm,
1545
+ orm: Any,
1537
1546
  ) -> Tuple[
1538
1547
  records.PrivateConsumption,
1539
1548
  records.Transfer,
@@ -1597,7 +1606,7 @@ class PrivateConsumptionOfBasicServiceResult(
1597
1606
  Tuple[records.PrivateConsumptionOfBasicService, records.Transfer]
1598
1607
  ]:
1599
1608
  def mapper(
1600
- orm,
1609
+ orm: Any,
1601
1610
  ) -> Tuple[records.PrivateConsumptionOfBasicService, records.Transfer]:
1602
1611
  consumption_orm, transfer_orm = orm
1603
1612
  return (
@@ -1628,7 +1637,7 @@ class PrivateConsumptionOfBasicServiceResult(
1628
1637
  ]
1629
1638
  ]:
1630
1639
  def mapper(
1631
- orm,
1640
+ orm: Any,
1632
1641
  ) -> Tuple[
1633
1642
  records.PrivateConsumptionOfBasicService,
1634
1643
  records.Transfer,
@@ -1691,7 +1700,7 @@ class ProductiveConsumptionOfBasicServiceResult(
1691
1700
  Tuple[records.ProductiveConsumptionOfBasicService, records.Transfer]
1692
1701
  ]:
1693
1702
  def mapper(
1694
- orm,
1703
+ orm: Any,
1695
1704
  ) -> Tuple[records.ProductiveConsumptionOfBasicService, records.Transfer]:
1696
1705
  consumption_orm, transfer_orm = orm
1697
1706
  return (
@@ -1722,7 +1731,7 @@ class ProductiveConsumptionOfBasicServiceResult(
1722
1731
  ]
1723
1732
  ]:
1724
1733
  def mapper(
1725
- orm,
1734
+ orm: Any,
1726
1735
  ) -> Tuple[
1727
1736
  records.ProductiveConsumptionOfBasicService,
1728
1737
  records.Transfer,
@@ -1796,7 +1805,7 @@ class CooperationResult(SqlQueryResult[records.Cooperation]):
1796
1805
  self,
1797
1806
  ) -> SqlQueryResult[Tuple[records.Cooperation, records.Company]]:
1798
1807
  def mapper(
1799
- orm,
1808
+ orm: Any,
1800
1809
  ) -> Tuple[records.Cooperation, records.Company]:
1801
1810
  cooperation_orm, company_orm = orm
1802
1811
  return (
@@ -1842,7 +1851,7 @@ class CoordinationTenureResult(SqlQueryResult[records.CoordinationTenure]):
1842
1851
  self,
1843
1852
  ) -> SqlQueryResult[Tuple[records.CoordinationTenure, records.Company]]:
1844
1853
  def mapper(
1845
- orm,
1854
+ orm: Any,
1846
1855
  ) -> Tuple[records.CoordinationTenure, records.Company]:
1847
1856
  tenure_orm, company_orm = orm
1848
1857
  return (
@@ -1892,7 +1901,7 @@ class CoordinationTransferRequestResult(
1892
1901
  Tuple[records.CoordinationTransferRequest, records.Cooperation]
1893
1902
  ]:
1894
1903
  def mapper(
1895
- orm,
1904
+ orm: Any,
1896
1905
  ) -> Tuple[records.CoordinationTransferRequest, records.Cooperation]:
1897
1906
  request_orm, cooperation_orm = orm
1898
1907
  return (
@@ -1942,7 +1951,7 @@ class CompanyWorkInviteResult(SqlQueryResult[records.CompanyWorkInvite]):
1942
1951
  def joined_with_member(
1943
1952
  self,
1944
1953
  ) -> SqlQueryResult[Tuple[records.CompanyWorkInvite, records.Member]]:
1945
- def mapper(orm) -> Tuple[records.CompanyWorkInvite, records.Member]:
1954
+ def mapper(orm: Any) -> Tuple[records.CompanyWorkInvite, records.Member]:
1946
1955
  invite_orm, member_orm = orm
1947
1956
  return (
1948
1957
  DatabaseGatewayImpl.company_work_invite_from_orm(invite_orm),
@@ -2041,7 +2050,7 @@ class RegisteredHoursWorkedResult(SqlQueryResult[records.RegisteredHoursWorked])
2041
2050
  ]
2042
2051
  ]:
2043
2052
  def mapper(
2044
- orm,
2053
+ orm: Any,
2045
2054
  ) -> Tuple[records.RegisteredHoursWorked, records.Member]:
2046
2055
  hours_orm, member_orm = orm
2047
2056
  return (
@@ -2067,7 +2076,7 @@ class RegisteredHoursWorkedResult(SqlQueryResult[records.RegisteredHoursWorked])
2067
2076
  ]
2068
2077
  ]:
2069
2078
  def mapper(
2070
- orm,
2079
+ orm: Any,
2071
2080
  ) -> Tuple[records.RegisteredHoursWorked, records.Transfer]:
2072
2081
  hours_orm, transfer_orm = orm
2073
2082
  return (
@@ -2095,7 +2104,7 @@ class RegisteredHoursWorkedResult(SqlQueryResult[records.RegisteredHoursWorked])
2095
2104
  ]
2096
2105
  ]:
2097
2106
  def mapper(
2098
- orm,
2107
+ orm: Any,
2099
2108
  ) -> Tuple[records.RegisteredHoursWorked, records.Member, records.Transfer]:
2100
2109
  hours_orm, member_orm, transfer_orm = orm
2101
2110
  return (
@@ -1,5 +1,5 @@
1
1
  from functools import wraps
2
- from typing import Any
2
+ from typing import Any, Callable
3
3
 
4
4
  from flask import request
5
5
 
@@ -13,9 +13,9 @@ def _not_implemented_view(*args: Any, **kwargs: Any) -> Response:
13
13
 
14
14
 
15
15
  class as_flask_view:
16
- def __call__(self, view_class):
16
+ def __call__(self, view_class: type[Any]) -> Callable[..., Response]:
17
17
  @wraps(view_class)
18
- def wrapper(*args, **kwargs):
18
+ def wrapper(*args: Any, **kwargs: Any) -> Response:
19
19
  injector = create_dependency_injector()
20
20
  view = injector.get(view_class)
21
21
  dispatched_method = getattr(view, request.method, _not_implemented_view)
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from functools import wraps
4
+ from typing import Any, Callable
4
5
 
5
6
  from flask import current_app
6
7
 
@@ -64,7 +65,7 @@ from workers_control.web.translator import Translator
64
65
  from workers_control.web.url_index import UrlIndex
65
66
 
66
67
 
67
- class FlaskModule(Module):
68
+ class FlaskProductionModule(Module):
68
69
  def configure(self, binder: Binder) -> None:
69
70
  super().configure(binder)
70
71
  binder.bind(
@@ -137,14 +138,14 @@ class with_injection:
137
138
  def __init__(self) -> None:
138
139
  self._injector = create_dependency_injector()
139
140
 
140
- def __call__(self, original_function):
141
+ def __call__(self, original_function: Callable[..., Any]) -> Callable[..., Any]:
141
142
  """When you wrap a function, make sure that the parameters to be
142
143
  injected come after the the parameters that the caller should
143
144
  provide.
144
145
  """
145
146
 
146
147
  @wraps(original_function)
147
- def wrapped_function(*args, **kwargs):
148
+ def wrapped_function(*args: Any, **kwargs: Any) -> Any:
148
149
  return self._injector.call_with_injection(
149
150
  original_function, args=args, kwargs=kwargs
150
151
  )
@@ -153,4 +154,4 @@ class with_injection:
153
154
 
154
155
 
155
156
  def create_dependency_injector() -> Injector:
156
- return Injector([FlaskModule()])
157
+ return Injector([FlaskProductionModule()])
@@ -25,21 +25,21 @@ def hsl_to_hex(hue: float, saturation: float, lightness: float) -> str:
25
25
  class FlaskColors:
26
26
  # hsl values must be in sync with colors.css
27
27
  @property
28
- def primary(self):
28
+ def primary(self) -> str:
29
29
  return hsl_to_hex(171, 100, 41)
30
30
 
31
31
  @property
32
- def info(self):
32
+ def info(self) -> str:
33
33
  return hsl_to_hex(207, 61, 53)
34
34
 
35
35
  @property
36
- def warning(self):
36
+ def warning(self) -> str:
37
37
  return hsl_to_hex(44, 100, 77)
38
38
 
39
39
  @property
40
- def danger(self):
40
+ def danger(self) -> str:
41
41
  return hsl_to_hex(348, 86, 61)
42
42
 
43
43
  @property
44
- def success(self):
44
+ def success(self) -> str:
45
45
  return hsl_to_hex(153, 53, 53)
@@ -1,5 +1,5 @@
1
1
  from dataclasses import dataclass
2
- from typing import Optional
2
+ from typing import Any, Optional
3
3
  from urllib.parse import urljoin, urlparse
4
4
  from uuid import UUID
5
5
 
@@ -42,7 +42,7 @@ class FlaskLoginUser:
42
42
  def is_anonymous(self) -> bool:
43
43
  return False
44
44
 
45
- def __getattr__(self, name):
45
+ def __getattr__(self, name: str) -> Any:
46
46
  return getattr(self.orm_user, name)
47
47
 
48
48
 
@@ -1,8 +1,8 @@
1
1
  import importlib
2
2
 
3
- from flask import current_app
3
+ from flask import Flask, current_app
4
4
 
5
- from workers_control.core.injector import Injector
5
+ from workers_control.core.injector import ClassProvider, Injector
6
6
 
7
7
  from .interface import EmailPlugin
8
8
 
@@ -11,7 +11,7 @@ def provide_email_service(injector: Injector) -> EmailPlugin:
11
11
  if plugin := current_app.extensions.get("woco_email_plugin"):
12
12
  return plugin
13
13
  plugin = _create_email_plugin_from_config(injector)
14
- _store_email_plugin(plugin)
14
+ set_email_plugin(current_app, plugin)
15
15
  return plugin
16
16
 
17
17
 
@@ -21,9 +21,9 @@ def _create_email_plugin_from_config(injector: Injector) -> EmailPlugin:
21
21
  module = importlib.import_module(module_name)
22
22
  plugin_class = getattr(module, class_name)
23
23
  assert issubclass(plugin_class, EmailPlugin)
24
- plugin = injector.get(plugin_class)
24
+ plugin = ClassProvider(plugin_class).provide(injector.binder)
25
25
  return plugin
26
26
 
27
27
 
28
- def _store_email_plugin(plugin: EmailPlugin) -> None:
29
- current_app.extensions["woco_email_plugin"] = plugin
28
+ def set_email_plugin(app: Flask, plugin: EmailPlugin) -> None:
29
+ app.extensions["woco_email_plugin"] = plugin