workers-control 0.2.3__tar.gz → 0.2.4__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 (599) hide show
  1. {workers_control-0.2.3/src/workers_control.egg-info → workers_control-0.2.4}/PKG-INFO +4 -4
  2. {workers_control-0.2.3 → workers_control-0.2.4}/pyproject.toml +4 -4
  3. workers_control-0.2.3/src/workers_control/core/services/plan_details.py → workers_control-0.2.4/src/workers_control/core/interactors/get_plan_details.py +37 -25
  4. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/routes.py +0 -29
  5. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/company/routes.py +8 -8
  6. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/member/routes.py +0 -8
  7. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/user/routes.py +6 -0
  8. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_cooperations.html +20 -0
  9. {workers_control-0.2.3/src/workers_control/flask/templates/accountant → workers_control-0.2.4/src/workers_control/flask/templates/user}/plan_details.html +1 -2
  10. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/url_index.py +2 -10
  11. workers_control-0.2.4/src/workers_control/flask/views/end_plan_cooperation_view.py +39 -0
  12. workers_control-0.2.3/src/workers_control/flask/views/get_plan_details_company_view.py → workers_control-0.2.4/src/workers_control/flask/views/get_plan_details_view.py +5 -5
  13. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/url_index.py +1 -24
  14. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/end_cooperation_presenter.py +1 -18
  15. workers_control-0.2.4/src/workers_control/web/www/presenters/end_plan_cooperation_presenter.py +29 -0
  16. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_summary_presenter.py +3 -4
  17. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_coop_summary_presenter.py +2 -3
  18. workers_control-0.2.3/src/workers_control/web/formatters/plan_details_formatter.py → workers_control-0.2.4/src/workers_control/web/www/presenters/get_plan_details_presenter.py +24 -6
  19. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_plan_for_review_presenter.py +1 -2
  20. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_plans_with_pending_review_presenter.py +1 -2
  21. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumption_details_presenter.py +1 -2
  22. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/productive_consumption_details_presenter.py +1 -2
  23. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_offers_presenter.py +2 -3
  24. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/review_registered_consumptions_presenter.py +1 -4
  25. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_cooperations_presenter.py +7 -10
  26. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_plans_presenter.py +13 -6
  27. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_payout_factor_details_presenter.py +1 -6
  28. {workers_control-0.2.3 → workers_control-0.2.4/src/workers_control.egg-info}/PKG-INFO +4 -4
  29. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control.egg-info/SOURCES.txt +5 -10
  30. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control.egg-info/requires.txt +3 -3
  31. workers_control-0.2.3/src/workers_control/core/interactors/get_plan_details.py +0 -26
  32. workers_control-0.2.3/src/workers_control/flask/templates/company/plan_details.html +0 -57
  33. workers_control-0.2.3/src/workers_control/flask/templates/member/plan_details.html +0 -26
  34. workers_control-0.2.3/src/workers_control/flask/views/get_plan_details_member_view.py +0 -33
  35. workers_control-0.2.3/src/workers_control/web/www/presenters/get_plan_details_accountant_presenter.py +0 -35
  36. workers_control-0.2.3/src/workers_control/web/www/presenters/get_plan_details_company_presenter.py +0 -78
  37. workers_control-0.2.3/src/workers_control/web/www/presenters/get_plan_details_member_presenter.py +0 -39
  38. {workers_control-0.2.3 → workers_control-0.2.4}/LICENSE +0 -0
  39. {workers_control-0.2.3 → workers_control-0.2.4}/MANIFEST.in +0 -0
  40. {workers_control-0.2.3 → workers_control-0.2.4}/README.rst +0 -0
  41. {workers_control-0.2.3 → workers_control-0.2.4}/build_support/__init__.py +0 -0
  42. {workers_control-0.2.3 → workers_control-0.2.4}/build_support/babel.cfg +0 -0
  43. {workers_control-0.2.3 → workers_control-0.2.4}/build_support/backend.py +0 -0
  44. {workers_control-0.2.3 → workers_control-0.2.4}/build_support/project.py +0 -0
  45. {workers_control-0.2.3 → workers_control-0.2.4}/build_support/translations.py +0 -0
  46. {workers_control-0.2.3 → workers_control-0.2.4}/setup.cfg +0 -0
  47. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/__init__.py +0 -0
  48. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/accountant_notifications.py +0 -0
  49. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/anonymization.py +0 -0
  50. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/control_thresholds.py +0 -0
  51. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/datetime_service.py +0 -0
  52. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/decimal.py +0 -0
  53. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/email.py +0 -0
  54. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/email_notifications.py +0 -0
  55. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/injector.py +0 -0
  56. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/__init__.py +0 -0
  57. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_cooperation.py +0 -0
  58. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_coordination_transfer.py +0 -0
  59. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/answer_company_work_invite.py +0 -0
  60. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/approve_plan.py +0 -0
  61. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/cancel_cooperation_solicitation.py +0 -0
  62. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_email_address.py +0 -0
  63. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_name.py +0 -0
  64. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_password.py +0 -0
  65. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_company.py +0 -0
  66. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_member.py +0 -0
  67. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/create_basic_service.py +0 -0
  68. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/create_cooperation.py +0 -0
  69. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/create_draft_from_plan.py +0 -0
  70. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/create_plan_draft.py +0 -0
  71. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/deactivate_basic_service.py +0 -0
  72. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/delete_draft.py +0 -0
  73. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/deny_cooperation.py +0 -0
  74. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/edit_draft.py +0 -0
  75. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/end_cooperation.py +0 -0
  76. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/file_plan_with_accounting.py +0 -0
  77. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_accountant_dashboard.py +0 -0
  78. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_dashboard.py +0 -0
  79. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_summary.py +0 -0
  80. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coop_summary.py +0 -0
  81. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coordination_transfer_request_details.py +0 -0
  82. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_draft_details.py +0 -0
  83. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_member_dashboard.py +0 -0
  84. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_plan_for_review.py +0 -0
  85. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_private_consumption_details.py +0 -0
  86. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_productive_consumption_details.py +0 -0
  87. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_statistics.py +0 -0
  88. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/get_user_account_details.py +0 -0
  89. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/hide_plan.py +0 -0
  90. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/invite_worker_to_company.py +0 -0
  91. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_active_plans_of_company.py +0 -0
  92. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_all_cooperations.py +0 -0
  93. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_available_languages.py +0 -0
  94. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_basic_services_of_worker.py +0 -0
  95. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_company.py +0 -0
  96. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_cooperation.py +0 -0
  97. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_my_cooperating_plans.py +0 -0
  98. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_pending_work_invites.py +0 -0
  99. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_plans_with_pending_review.py +0 -0
  100. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_registered_hours_worked.py +0 -0
  101. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_transfers.py +0 -0
  102. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/list_workers.py +0 -0
  103. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_accountant.py +0 -0
  104. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_company.py +0 -0
  105. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_member.py +0 -0
  106. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/preview_private_consumption.py +0 -0
  107. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/query_companies.py +0 -0
  108. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/query_company_consumptions.py +0 -0
  109. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/query_offers.py +0 -0
  110. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/query_private_consumptions.py +0 -0
  111. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_accountant.py +0 -0
  112. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_company.py +0 -0
  113. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_hours_worked.py +0 -0
  114. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_member.py +0 -0
  115. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption.py +0 -0
  116. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption_of_basic_service.py +0 -0
  117. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption.py +0 -0
  118. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption_of_basic_service.py +0 -0
  119. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/reject_plan.py +0 -0
  120. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/remove_worker_from_company.py +0 -0
  121. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/request_cooperation.py +0 -0
  122. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/request_coordination_transfer.py +0 -0
  123. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/request_email_address_change.py +0 -0
  124. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/request_user_password_reset.py +0 -0
  125. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_confirmation_mail.py +0 -0
  126. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_work_invite.py +0 -0
  127. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/review_registered_consumptions.py +0 -0
  128. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/revoke_plan_filing.py +0 -0
  129. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption.py +0 -0
  130. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption_of_basic_service.py +0 -0
  131. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption.py +0 -0
  132. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption_of_basic_service.py +0 -0
  133. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/send_accountant_registration_token.py +0 -0
  134. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_a_account_details.py +0 -0
  135. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_basic_service.py +0 -0
  136. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_accounts.py +0 -0
  137. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_cooperations.py +0 -0
  138. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_work_invite_details.py +0 -0
  139. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_member_account_details.py +0 -0
  140. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_my_plans.py +0 -0
  141. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_p_account_details.py +0 -0
  142. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_payout_factor_details.py +0 -0
  143. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_prd_account_details.py +0 -0
  144. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_psf_account_details.py +0 -0
  145. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/interactors/show_r_account_details.py +0 -0
  146. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/password_hasher.py +0 -0
  147. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/records.py +0 -0
  148. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/repositories.py +0 -0
  149. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/__init__.py +0 -0
  150. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/account_details.py +0 -0
  151. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/compensation_transfers.py +0 -0
  152. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/payout_factor.py +0 -0
  153. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/price_calculator.py +0 -0
  154. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/services/psf_balance.py +0 -0
  155. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/core/transfers.py +0 -0
  156. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/__init__.py +0 -0
  157. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/db.py +0 -0
  158. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/alembic.ini +0 -0
  159. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/env.py +0 -0
  160. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/script.py.mako +0 -0
  161. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/17911726c134_add_deactivated_on_to_basic_service.py +0 -0
  162. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/399a221ebea4_add_private_consumption_of_basic_.py +0 -0
  163. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/480a749375de_drop_transaction_table.py +0 -0
  164. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/4fd90069eb82_remove_social_accounting_account.py +0 -0
  165. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/686f2af1cbfe_add_basic_service_transfer_types.py +0 -0
  166. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/68ac7ccf6086_create_table_emailoutbox.py +0 -0
  167. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/7a4d0412c2a7_add_productive_consumption_of_basic_.py +0 -0
  168. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/a3e7b2c1d4f5_use_native_uuid_column_types.py +0 -0
  169. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/b40539bf0293_add_basic_service_table.py +0 -0
  170. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/c5e8a9d0f1b2_add_taxes_to_basic_service_consumptions.py +0 -0
  171. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/c9f2e1a4b8d7_add_outbox_status_columns.py +0 -0
  172. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/f4a9c2e1b6d3_replace_plan_review_with_plan_rejection.py +0 -0
  173. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/models.py +0 -0
  174. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/db/repositories.py +0 -0
  175. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/email_sending_worker/__init__.py +0 -0
  176. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/email_sending_worker/interface.py +0 -0
  177. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/email_sending_worker/smtp_service.py +0 -0
  178. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/email_sending_worker/worker.py +0 -0
  179. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/__init__.py +0 -0
  180. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/babel.py +0 -0
  181. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/class_based_view.py +0 -0
  182. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/commands.py +0 -0
  183. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/config/__init__.py +0 -0
  184. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/config/checks.py +0 -0
  185. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/config/loader.py +0 -0
  186. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/config/options.py +0 -0
  187. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/config/production_defaults.py +0 -0
  188. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/context_processors.py +0 -0
  189. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/control_thresholds.py +0 -0
  190. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/database.py +0 -0
  191. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/datetime.py +0 -0
  192. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/dependency_injection.py +0 -0
  193. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/email_configuration.py +0 -0
  194. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/extensions.py +0 -0
  195. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/filters.py +0 -0
  196. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/flask_colors.py +0 -0
  197. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/flask_request.py +0 -0
  198. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/flask_session.py +0 -0
  199. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/forms.py +0 -0
  200. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/language_repository.py +0 -0
  201. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/logging_config.json +0 -0
  202. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/mail_sender/__init__.py +0 -0
  203. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/mail_service/__init__.py +0 -0
  204. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/mail_service/interface.py +0 -0
  205. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/mail_service/mail_storage_service.py +0 -0
  206. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/notifications.py +0 -0
  207. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/password_hasher.py +0 -0
  208. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/payout_factor.py +0 -0
  209. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/plotter.py +0 -0
  210. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/profiling.py +0 -0
  211. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/__init__.py +0 -0
  212. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/__init__.py +0 -0
  213. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/blueprint.py +0 -0
  214. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/__init__.py +0 -0
  215. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/routes.py +0 -0
  216. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/company/__init__.py +0 -0
  217. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/company/blueprint.py +0 -0
  218. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/__init__.py +0 -0
  219. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/blueprint.py +0 -0
  220. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/member/__init__.py +0 -0
  221. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/member/blueprint.py +0 -0
  222. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/__init__.py +0 -0
  223. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/routes.py +0 -0
  224. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/user/__init__.py +0 -0
  225. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/routes/user/blueprint.py +0 -0
  226. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/bulma.css +0 -0
  227. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/colors.css +0 -0
  228. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/favicon.ico +0 -0
  229. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/main.css +0 -0
  230. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/main.js +0 -0
  231. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/static/main.module.js +0 -0
  232. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/dashboard.html +0 -0
  233. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/notification-about-new-plan.html +0 -0
  234. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/plans-to-review-list.html +0 -0
  235. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/review_plan.html +0 -0
  236. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/accountant_invitation.html +0 -0
  237. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/activate.html +0 -0
  238. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/help.html +0 -0
  239. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_accountant.html +0 -0
  240. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_company.html +0 -0
  241. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_member.html +0 -0
  242. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/password_reset_confirmation_email.html +0 -0
  243. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/request_password_reset.html +0 -0
  244. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password.html +0 -0
  245. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_email.html +0 -0
  246. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_invalid.html +0 -0
  247. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_accountant.html +0 -0
  248. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_company.html +0 -0
  249. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_member.html +0 -0
  250. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/start.html +0 -0
  251. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_company.html +0 -0
  252. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_member.html +0 -0
  253. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/base.html +0 -0
  254. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/consumption_details.html +0 -0
  255. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_cooperation.html +0 -0
  256. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_draft.html +0 -0
  257. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/dashboard.html +0 -0
  258. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/draft_details.html +0 -0
  259. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/invite_worker_to_company.html +0 -0
  260. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_pending_work_invites.html +0 -0
  261. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_registered_hours_worked.html +0 -0
  262. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_consumptions.html +0 -0
  263. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_plans.html +0 -0
  264. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_hours_worked.html +0 -0
  265. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_productive_consumption.html +0 -0
  266. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_productive_consumption_of_basic_service.html +0 -0
  267. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/rejected_plan_notification.html +0 -0
  268. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/remove_worker_from_company.html +0 -0
  269. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_cooperation.html +0 -0
  270. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_coordination_transfer.html +0 -0
  271. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/review_registered_consumptions.html +0 -0
  272. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/company/show_coordination_transfer_request.html +0 -0
  273. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/at.html +0 -0
  274. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/basket-shopping.html +0 -0
  275. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/book.html +0 -0
  276. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/calendar.html +0 -0
  277. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-line.html +0 -0
  278. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-pie.html +0 -0
  279. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/check.html +0 -0
  280. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/copy.html +0 -0
  281. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/credit-card.html +0 -0
  282. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/edit.html +0 -0
  283. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/envelope.html +0 -0
  284. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exchange-alt.html +0 -0
  285. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exclamation-triangle.html +0 -0
  286. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye-slashed.html +0 -0
  287. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye.html +0 -0
  288. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file-circle-plus.html +0 -0
  289. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file.html +0 -0
  290. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hands-helping.html +0 -0
  291. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hourglass.html +0 -0
  292. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/industry.html +0 -0
  293. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/info-circle.html +0 -0
  294. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/key.html +0 -0
  295. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/list.html +0 -0
  296. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/oil-can.html +0 -0
  297. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/redo.html +0 -0
  298. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/square-arrow-up-right.html +0 -0
  299. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/times.html +0 -0
  300. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/trash.html +0 -0
  301. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/user.html +0 -0
  302. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/users.html +0 -0
  303. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/company_summary.html +0 -0
  304. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/copy_toggle.html +0 -0
  305. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/draft_form.html +0 -0
  306. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/form_field_error.html +0 -0
  307. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/language_selection.html +0 -0
  308. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/navbar.html +0 -0
  309. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/navigation.html +0 -0
  310. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/pagination.html +0 -0
  311. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/plan_details.html +0 -0
  312. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/show_notifications.html +0 -0
  313. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/tooltips.html +0 -0
  314. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/transfers.html +0 -0
  315. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/basic_services.html +0 -0
  316. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumption_details.html +0 -0
  317. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumptions.html +0 -0
  318. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/create_basic_service.html +0 -0
  319. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/dashboard.html +0 -0
  320. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/my_account.html +0 -0
  321. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/notification-about-work-invitation.html +0 -0
  322. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/register_private_consumption.html +0 -0
  323. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/register_private_consumption_of_basic_service.html +0 -0
  324. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/member/show_company_work_invite_details.html +0 -0
  325. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_details.html +0 -0
  326. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_psf.html +0 -0
  327. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/change_user_name.html +0 -0
  328. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_a.html +0 -0
  329. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_p.html +0 -0
  330. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_prd.html +0 -0
  331. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_r.html +0 -0
  332. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_accounts.html +0 -0
  333. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_summary.html +0 -0
  334. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/confirm_email_address_change.html +0 -0
  335. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/coop_summary.html +0 -0
  336. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/http_error.html +0 -0
  337. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_all_cooperations.html +0 -0
  338. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_coordinations_of_cooperation.html +0 -0
  339. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_transfers.html +0 -0
  340. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/name_change_confirmation.html +0 -0
  341. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_companies.html +0 -0
  342. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_offers.html +0 -0
  343. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_address_change.html +0 -0
  344. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_notification.html +0 -0
  345. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_warning.html +0 -0
  346. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_basic_service.html +0 -0
  347. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_payout_factor_details.html +0 -0
  348. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/templates/user/statistics.html +0 -0
  349. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/text_renderer.py +0 -0
  350. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/token.py +0 -0
  351. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/translations/de/LC_MESSAGES/messages.po +0 -0
  352. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/translations/en/LC_MESSAGES/messages.po +0 -0
  353. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/translations/es/LC_MESSAGES/messages.po +0 -0
  354. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/translations/messages.pot +0 -0
  355. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/translator.py +0 -0
  356. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/types.py +0 -0
  357. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/__init__.py +0 -0
  358. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/accept_cooperation_request_view.py +0 -0
  359. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/accountant_invitation_email_view.py +0 -0
  360. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/cancel_cooperation_request_view.py +0 -0
  361. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/change_email_address_view.py +0 -0
  362. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/change_user_name_view.py +0 -0
  363. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/company_dashboard_view.py +0 -0
  364. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/company_work_invite_view.py +0 -0
  365. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/coop_summary_view.py +0 -0
  366. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/create_basic_service_view.py +0 -0
  367. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/create_cooperation_view.py +0 -0
  368. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_from_plan_view.py +0 -0
  369. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_view.py +0 -0
  370. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/deactivate_basic_service_view.py +0 -0
  371. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/delete_draft_view.py +0 -0
  372. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/deny_cooperation_view.py +0 -0
  373. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/draft_details_view.py +0 -0
  374. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/end_cooperation_view.py +0 -0
  375. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/file_plan_with_accounting_view.py +0 -0
  376. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/get_private_consumption_details.py +0 -0
  377. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/get_productive_consumption_details.py +0 -0
  378. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/get_statistics_view.py +0 -0
  379. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/healthcheck_view.py +0 -0
  380. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/hide_plan_view.py +0 -0
  381. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/http_error_view.py +0 -0
  382. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/invite_worker_to_company.py +0 -0
  383. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_all_cooperations_view.py +0 -0
  384. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_basic_services_of_worker_view.py +0 -0
  385. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_coordinators_of_cooperation_view.py +0 -0
  386. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_pending_work_invites_view.py +0 -0
  387. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_registered_hours_worked_view.py +0 -0
  388. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/list_transfers.py +0 -0
  389. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_accountant_view.py +0 -0
  390. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_company_view.py +0 -0
  391. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_member_view.py +0 -0
  392. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/member_dashboard_view.py +0 -0
  393. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/query_companies.py +0 -0
  394. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/query_company_consumptions_view.py +0 -0
  395. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/query_offers.py +0 -0
  396. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/query_private_consumptions.py +0 -0
  397. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/register_hours_worked_view.py +0 -0
  398. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/register_private_consumption.py +0 -0
  399. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/register_private_consumption_of_basic_service_view.py +0 -0
  400. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/register_productive_consumption.py +0 -0
  401. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/register_productive_consumption_of_basic_service_view.py +0 -0
  402. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/remove_worker_from_company_view.py +0 -0
  403. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/request_cooperation_view.py +0 -0
  404. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/request_coordination_transfer_view.py +0 -0
  405. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/request_email_address_change_view.py +0 -0
  406. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/request_password_reset_view.py +0 -0
  407. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/resend_confirmation_view.py +0 -0
  408. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/reset_password_view.py +0 -0
  409. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/review_plan_view.py +0 -0
  410. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/review_registered_consumptions_view.py +0 -0
  411. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/revoke_plan_filing_view.py +0 -0
  412. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_a_account_details_view.py +0 -0
  413. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_basic_service_view.py +0 -0
  414. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_company_accounts_view.py +0 -0
  415. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_coordination_transfer_request_view.py +0 -0
  416. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_member_account_details_view.py +0 -0
  417. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_cooperations_view.py +0 -0
  418. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_plans_view.py +0 -0
  419. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_p_account_details_view.py +0 -0
  420. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_payout_factor_details_view.py +0 -0
  421. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_prd_account_details_view.py +0 -0
  422. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_psf_account_details_view.py +0 -0
  423. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/show_r_account_details_view.py +0 -0
  424. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/signup_accountant_view.py +0 -0
  425. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/signup_company_view.py +0 -0
  426. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/views/signup_member_view.py +0 -0
  427. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/flask/wsgi.py +0 -0
  428. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/__init__.py +0 -0
  429. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/colors.py +0 -0
  430. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/__init__.py +0 -0
  431. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/accountant_invitation_presenter.py +0 -0
  432. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/company_notifier.py +0 -0
  433. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/cooperation_request_email_presenter.py +0 -0
  434. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/email_change_confirmation_presenter.py +0 -0
  435. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/email_change_warning_view.py +0 -0
  436. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/email_sender.py +0 -0
  437. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/invite_worker_presenter.py +0 -0
  438. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/name_change_confirmation_presenter.py +0 -0
  439. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/notify_about_worker_removal_from_company_presenter.py +0 -0
  440. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/notify_accountant_about_new_plan_presenter.py +0 -0
  441. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/registration_email_presenter.py +0 -0
  442. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/request_coordination_transfer_presenter.py +0 -0
  443. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/email/reset_password_email_presenter.py +0 -0
  444. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/formatters/__init__.py +0 -0
  445. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/formatters/datetime_formatter.py +0 -0
  446. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/forms/__init__.py +0 -0
  447. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/forms/fields.py +0 -0
  448. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/forms/formfield_parsers.py +0 -0
  449. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/json.py +0 -0
  450. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/language_service.py +0 -0
  451. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/malformed_input_data.py +0 -0
  452. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/notification.py +0 -0
  453. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/pagination.py +0 -0
  454. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/request.py +0 -0
  455. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/session.py +0 -0
  456. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/text_renderer.py +0 -0
  457. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/token.py +0 -0
  458. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/translator.py +0 -0
  459. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/__init__.py +0 -0
  460. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/authentication.py +0 -0
  461. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/__init__.py +0 -0
  462. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/accept_coordination_transfer_controller.py +0 -0
  463. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/answer_company_work_invite_controller.py +0 -0
  464. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/approve_plan_controller.py +0 -0
  465. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_email_address_controller.py +0 -0
  466. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_name_controller.py +0 -0
  467. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_company_controller.py +0 -0
  468. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_member_controller.py +0 -0
  469. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_basic_service_controller.py +0 -0
  470. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_controller.py +0 -0
  471. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_from_plan_controller.py +0 -0
  472. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/deactivate_basic_service_controller.py +0 -0
  473. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/delete_draft_controller.py +0 -0
  474. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/draft_form_validator.py +0 -0
  475. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/edit_draft_controller.py +0 -0
  476. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/end_cooperation_controller.py +0 -0
  477. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/file_plan_with_accounting_controller.py +0 -0
  478. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_private_consumption_details_controller.py +0 -0
  479. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_productive_consumption_details_controller.py +0 -0
  480. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/invite_worker_to_company_controller.py +0 -0
  481. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_basic_services_of_worker_controller.py +0 -0
  482. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_pending_work_invites_controller.py +0 -0
  483. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_registered_hours_worked_controller.py +0 -0
  484. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_transfers_controller.py +0 -0
  485. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_workers_controller.py +0 -0
  486. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/log_in_accountant_controller.py +0 -0
  487. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_companies_controller.py +0 -0
  488. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_offers_controller.py +0 -0
  489. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_private_consumptions_controller.py +0 -0
  490. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_accountant_controller.py +0 -0
  491. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_company_controller.py +0 -0
  492. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_hours_worked_controller.py +0 -0
  493. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_member_controller.py +0 -0
  494. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_controller.py +0 -0
  495. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_form_validator.py +0 -0
  496. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_controller.py +0 -0
  497. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_form_validator.py +0 -0
  498. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_controller.py +0 -0
  499. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_controller.py +0 -0
  500. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_form_validator.py +0 -0
  501. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reject_plan_controller.py +0 -0
  502. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/remove_worker_from_company_controller.py +0 -0
  503. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_cooperation_controller.py +0 -0
  504. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_coordination_transfer_controller.py +0 -0
  505. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_email_address_change_controller.py +0 -0
  506. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_password_reset_controller.py +0 -0
  507. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/resend_work_invite_controller.py +0 -0
  508. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reset_password_controller.py +0 -0
  509. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/review_plan_controller.py +0 -0
  510. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/review_registered_consumptions_controller.py +0 -0
  511. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/revoke_plan_filing_controller.py +0 -0
  512. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_private_consumption_controller.py +0 -0
  513. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_private_consumption_of_basic_service_controller.py +0 -0
  514. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_productive_consumption_controller.py +0 -0
  515. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_productive_consumption_of_basic_service_controller.py +0 -0
  516. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_a_account_details_controller.py +0 -0
  517. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_basic_service_controller.py +0 -0
  518. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_company_accounts_controller.py +0 -0
  519. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_company_work_invite_details_controller.py +0 -0
  520. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_p_account_details_controller.py +0 -0
  521. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_prd_account_details_controller.py +0 -0
  522. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_r_account_details_controller.py +0 -0
  523. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/controllers/user_account_details_controller.py +0 -0
  524. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/navbar.py +0 -0
  525. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/__init__.py +0 -0
  526. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +0 -0
  527. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_coordination_transfer_presenter.py +0 -0
  528. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/answer_company_work_invite_presenter.py +0 -0
  529. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/approve_plan_presenter.py +0 -0
  530. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/cancel_cooperation_request_presenter.py +0 -0
  531. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_email_address_presenter.py +0 -0
  532. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_name_presenter.py +0 -0
  533. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/company_consumptions_presenter.py +0 -0
  534. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_basic_service_presenter.py +0 -0
  535. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_cooperation_presenter.py +0 -0
  536. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_from_plan_presenter.py +0 -0
  537. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_presenter.py +0 -0
  538. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deactivate_basic_service_presenter.py +0 -0
  539. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/delete_draft_presenter.py +0 -0
  540. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +0 -0
  541. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/edit_draft_presenter.py +0 -0
  542. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/file_plan_with_accounting_presenter.py +0 -0
  543. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_accountant_dashboard_presenter.py +0 -0
  544. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_dashboard_presenter.py +0 -0
  545. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_coordination_transfer_request_details_presenter.py +0 -0
  546. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_draft_details_presenter.py +0 -0
  547. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_member_dashboard_presenter.py +0 -0
  548. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_statistics_presenter.py +0 -0
  549. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/hide_plan_presenter.py +0 -0
  550. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/invite_worker_to_company_presenter.py +0 -0
  551. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_all_cooperations_presenter.py +0 -0
  552. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_available_languages_presenter.py +0 -0
  553. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_basic_services_of_worker_presenter.py +0 -0
  554. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_coordinations_of_cooperation_presenter.py +0 -0
  555. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_pending_work_invites_presenter.py +0 -0
  556. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_plans_presenter.py +0 -0
  557. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_registered_hours_worked_presenter.py +0 -0
  558. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_transfers_presenter.py +0 -0
  559. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_workers_presenter.py +0 -0
  560. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_accountant_presenter.py +0 -0
  561. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_company_presenter.py +0 -0
  562. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_member_presenter.py +0 -0
  563. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumptions_presenter.py +0 -0
  564. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_companies_presenter.py +0 -0
  565. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_accountant_presenter.py +0 -0
  566. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_company_presenter.py +0 -0
  567. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_hours_worked_presenter.py +0 -0
  568. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_member_presenter.py +0 -0
  569. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_private_consumption_of_basic_service_presenter.py +0 -0
  570. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_private_consumption_presenter.py +0 -0
  571. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_productive_consumption_of_basic_service_presenter.py +0 -0
  572. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_productive_consumption_presenter.py +0 -0
  573. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reject_plan_presenter.py +0 -0
  574. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/remove_worker_from_company_presenter.py +0 -0
  575. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_cooperation_presenter.py +0 -0
  576. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_coordination_transfer_presenter.py +0 -0
  577. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_email_address_change_presenter.py +0 -0
  578. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_password_reset_presenter.py +0 -0
  579. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/resend_work_invite_presenter.py +0 -0
  580. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reset_password_presenter.py +0 -0
  581. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/revoke_plan_filing_presenter.py +0 -0
  582. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_private_consumption_of_basic_service_presenter.py +0 -0
  583. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_private_consumption_presenter.py +0 -0
  584. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_productive_consumption_of_basic_service_presenter.py +0 -0
  585. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_productive_consumption_presenter.py +0 -0
  586. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_a_account_details_presenter.py +0 -0
  587. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_basic_service_presenter.py +0 -0
  588. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_company_accounts_presenter.py +0 -0
  589. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_company_work_invite_details_presenter.py +0 -0
  590. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_member_account_details_presenter.py +0 -0
  591. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_p_account_details_presenter.py +0 -0
  592. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_prd_account_details_presenter.py +0 -0
  593. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_psf_account_details_presenter.py +0 -0
  594. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_r_account_details_presenter.py +0 -0
  595. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/transfers.py +0 -0
  596. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/presenters/user_account_details_presenter.py +0 -0
  597. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control/web/www/response.py +0 -0
  598. {workers_control-0.2.3 → workers_control-0.2.4}/src/workers_control.egg-info/dependency_links.txt +0 -0
  599. {workers_control-0.2.3 → workers_control-0.2.4}/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.3
3
+ Version: 0.2.4
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
@@ -13,14 +13,14 @@ Classifier: Programming Language :: Python :: 3.14
13
13
  Requires-Python: >=3.13
14
14
  Description-Content-Type: text/x-rst
15
15
  License-File: LICENSE
16
- Requires-Dist: alembic<=1.18.1,>=1.16.4
17
- Requires-Dist: email-validator<=2.3.0,>=2.2.0
16
+ Requires-Dist: alembic==1.18.1
17
+ Requires-Dist: email-validator==2.3.0
18
18
  Requires-Dist: flask==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.10.9,>=3.10.5
23
+ Requires-Dist: matplotlib<=3.11.0,>=3.10.9
24
24
  Provides-Extra: profiling
25
25
  Requires-Dist: flask_profiler; extra == "profiling"
26
26
  Dynamic: license-file
@@ -5,7 +5,7 @@ backend-path = ["."]
5
5
 
6
6
  [project]
7
7
  name = "workers-control"
8
- version = "0.2.3"
8
+ version = "0.2.4"
9
9
  description = "A flask app for labour time accounting."
10
10
  license = "AGPL-3.0-or-later"
11
11
  requires-python = ">=3.13"
@@ -19,14 +19,14 @@ readme = "README.rst"
19
19
 
20
20
  dependencies = [
21
21
  # Pin to exact versions, if possible.
22
- "alembic>=1.16.4, <=1.18.1", # different versions in stable/unstable nixpkgs
23
- "email-validator>=2.2.0, <=2.3.0", # different versions in stable/unstable nixpkgs
22
+ "alembic==1.18.1",
23
+ "email-validator==2.3.0",
24
24
  "flask==3.1.2",
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.5, <=3.10.9" # different versions in stable/unstable nixpkgs
29
+ "matplotlib>=3.10.9, <=3.11.0" # different versions in stable/unstable nixpkgs
30
30
  ]
31
31
 
32
32
  [project.optional-dependencies]
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from dataclasses import dataclass
2
4
  from datetime import datetime
3
5
  from decimal import Decimal
@@ -35,16 +37,24 @@ class PlanDetails:
35
37
 
36
38
 
37
39
  @dataclass
38
- class PlanDetailsService:
40
+ class GetPlanDetailsInteractor:
41
+ @dataclass
42
+ class Request:
43
+ plan_id: UUID
44
+
45
+ @dataclass
46
+ class Response:
47
+ plan_details: PlanDetails
48
+
39
49
  database_gateway: DatabaseGateway
40
50
  price_calculator: PriceCalculator
41
51
  datetime_service: DatetimeService
42
52
 
43
- def get_details_from_plan(self, plan_id: UUID) -> Optional[PlanDetails]:
53
+ def get_plan_details(self, request: Request) -> Optional[Response]:
44
54
  now = self.datetime_service.now()
45
55
  plan_and_cooperation = (
46
56
  self.database_gateway.get_plans()
47
- .with_id(plan_id)
57
+ .with_id(request.plan_id)
48
58
  .joined_with_cooperation()
49
59
  .first()
50
60
  )
@@ -54,26 +64,28 @@ class PlanDetailsService:
54
64
  price_per_unit = self.price_calculator.calculate_price(plan.id)
55
65
  planner = self.database_gateway.get_companies().with_id(plan.planner).first()
56
66
  assert planner
57
- return PlanDetails(
58
- plan_id=plan.id,
59
- is_active=plan.is_active_as_of(now),
60
- planner_id=planner.id,
61
- planner_name=planner.name,
62
- product_name=plan.prd_name,
63
- description=plan.description,
64
- timeframe=plan.timeframe,
65
- active_days=plan.active_days(now) or 0,
66
- production_unit=plan.prd_unit,
67
- amount=plan.prd_amount,
68
- means_cost=plan.production_costs.means_cost,
69
- resources_cost=plan.production_costs.resource_cost,
70
- labour_cost=plan.production_costs.labour_cost,
71
- is_public_service=plan.is_public_service,
72
- price_per_unit=price_per_unit,
73
- cost_per_unit=plan.cost_per_unit(),
74
- is_cooperating=bool(cooperation),
75
- cooperation=cooperation.id if cooperation else None,
76
- creation_date=plan.plan_creation_date,
77
- approval_date=plan.approval_date,
78
- expiration_date=plan.expiration_date,
67
+ return self.Response(
68
+ plan_details=PlanDetails(
69
+ plan_id=plan.id,
70
+ is_active=plan.is_active_as_of(now),
71
+ planner_id=planner.id,
72
+ planner_name=planner.name,
73
+ product_name=plan.prd_name,
74
+ description=plan.description,
75
+ timeframe=plan.timeframe,
76
+ active_days=plan.active_days(now) or 0,
77
+ production_unit=plan.prd_unit,
78
+ amount=plan.prd_amount,
79
+ means_cost=plan.production_costs.means_cost,
80
+ resources_cost=plan.production_costs.resource_cost,
81
+ labour_cost=plan.production_costs.labour_cost,
82
+ is_public_service=plan.is_public_service,
83
+ price_per_unit=price_per_unit,
84
+ cost_per_unit=plan.cost_per_unit(),
85
+ is_cooperating=bool(cooperation),
86
+ cooperation=cooperation.id if cooperation else None,
87
+ creation_date=plan.plan_creation_date,
88
+ approval_date=plan.approval_date,
89
+ expiration_date=plan.expiration_date,
90
+ )
79
91
  )
@@ -1,26 +1,18 @@
1
- from uuid import UUID
2
-
3
- from flask import Response as FlaskResponse
4
1
  from flask import render_template
5
2
 
6
3
  from workers_control.core.interactors.get_accountant_dashboard import (
7
4
  GetAccountantDashboardInteractor,
8
5
  )
9
- from workers_control.core.interactors.get_plan_details import GetPlanDetailsInteractor
10
6
  from workers_control.core.interactors.list_plans_with_pending_review import (
11
7
  ListPlansWithPendingReviewInteractor,
12
8
  )
13
9
  from workers_control.flask.class_based_view import as_flask_view
14
10
  from workers_control.flask.flask_session import FlaskSession
15
11
  from workers_control.flask.types import Response
16
- from workers_control.flask.views.http_error_view import http_404
17
12
  from workers_control.flask.views.review_plan_view import ReviewPlanView
18
13
  from workers_control.web.www.presenters.get_accountant_dashboard_presenter import (
19
14
  GetAccountantDashboardPresenter,
20
15
  )
21
- from workers_control.web.www.presenters.get_plan_details_accountant_presenter import (
22
- GetPlanDetailsAccountantPresenter,
23
- )
24
16
  from workers_control.web.www.presenters.list_plans_with_pending_review_presenter import (
25
17
  ListPlansWithPendingReviewPresenter,
26
18
  )
@@ -61,24 +53,3 @@ def list_plans_with_pending_review(
61
53
  @AccountantRoute("/accountant/plans/<uuid:plan_id>/review", methods=["GET", "POST"])
62
54
  @as_flask_view()
63
55
  class review_plan(ReviewPlanView): ...
64
-
65
-
66
- @AccountantRoute("/accountant/plan_details/<uuid:plan_id>")
67
- def plan_details(
68
- plan_id: UUID,
69
- interactor: GetPlanDetailsInteractor,
70
- presenter: GetPlanDetailsAccountantPresenter,
71
- ) -> Response:
72
- interactor_request = GetPlanDetailsInteractor.Request(plan_id)
73
- interactor_response = interactor.get_plan_details(interactor_request)
74
- if interactor_response:
75
- view_model = presenter.present(interactor_response)
76
- return FlaskResponse(
77
- render_template(
78
- "accountant/plan_details.html",
79
- view_model=view_model,
80
- navbar_items=presenter.create_navbar_items(),
81
- )
82
- )
83
- else:
84
- return http_404()
@@ -19,12 +19,12 @@ from workers_control.flask.views.create_draft_view import CreateDraftView
19
19
  from workers_control.flask.views.delete_draft_view import DeleteDraftView
20
20
  from workers_control.flask.views.deny_cooperation_view import DenyCooperationView
21
21
  from workers_control.flask.views.draft_details_view import DraftDetailsView
22
+ from workers_control.flask.views.end_plan_cooperation_view import (
23
+ EndPlanCooperationView,
24
+ )
22
25
  from workers_control.flask.views.file_plan_with_accounting_view import (
23
26
  FilePlanWithAccountingView,
24
27
  )
25
- from workers_control.flask.views.get_plan_details_company_view import (
26
- GetPlanDetailsCompanyView,
27
- )
28
28
  from workers_control.flask.views.get_productive_consumption_details import (
29
29
  GetProductiveConsumptionDetailsView,
30
30
  )
@@ -147,11 +147,6 @@ class register_productive_consumption_of_basic_service(
147
147
  ): ...
148
148
 
149
149
 
150
- @CompanyRoute("/plan_details/<uuid:plan_id>")
151
- @as_flask_view()
152
- class plan_details(GetPlanDetailsCompanyView): ...
153
-
154
-
155
150
  @CompanyRoute(
156
151
  "/cooperation_summary/<uuid:coop_id>/request_coordination_transfer",
157
152
  methods=["GET", "POST"],
@@ -218,6 +213,11 @@ class list_pending_work_invites(ListPendingWorkInvitesView): ...
218
213
  class end_cooperation(EndCooperationView): ...
219
214
 
220
215
 
216
+ @CompanyRoute("/end_plan_cooperation", methods=["POST"])
217
+ @as_flask_view()
218
+ class end_plan_cooperation(EndPlanCooperationView): ...
219
+
220
+
221
221
  @CompanyRoute("/review_registered_consumptions")
222
222
  @as_flask_view()
223
223
  class review_registered_consumptions(ReviewRegisteredConsumptionsView): ...
@@ -10,9 +10,6 @@ from workers_control.flask.views.create_basic_service_view import (
10
10
  from workers_control.flask.views.deactivate_basic_service_view import (
11
11
  DeactivateBasicServiceView,
12
12
  )
13
- from workers_control.flask.views.get_plan_details_member_view import (
14
- GetPlanDetailsMemberView,
15
- )
16
13
  from workers_control.flask.views.get_private_consumption_details import (
17
14
  GetPrivateConsumptionDetailsView,
18
15
  )
@@ -77,11 +74,6 @@ class dashboard(MemberDashboardView): ...
77
74
  class my_account(ShowMemberAccountDetailsView): ...
78
75
 
79
76
 
80
- @MemberRoute("/plan_details/<uuid:plan_id>")
81
- @as_flask_view()
82
- class plan_details(GetPlanDetailsMemberView): ...
83
-
84
-
85
77
  @MemberRoute("/invite_details/<uuid:invite_id>", methods=["GET", "POST"])
86
78
  @as_flask_view()
87
79
  class show_company_work_invite(CompanyWorkInviteView): ...
@@ -15,6 +15,7 @@ from workers_control.flask.views import QueryCompaniesView, QueryOffersView
15
15
  from workers_control.flask.views.change_email_address_view import ChangeEmailAddressView
16
16
  from workers_control.flask.views.change_user_name_view import ChangeUserNameView
17
17
  from workers_control.flask.views.coop_summary_view import CoopSummaryView
18
+ from workers_control.flask.views.get_plan_details_view import GetPlanDetailsView
18
19
  from workers_control.flask.views.get_statistics_view import GetStatisticsView
19
20
  from workers_control.flask.views.http_error_view import http_404
20
21
  from workers_control.flask.views.list_all_cooperations_view import (
@@ -182,3 +183,8 @@ class show_payout_factor_details(ShowPayoutFactorDetailsView): ...
182
183
  @AuthenticatedUserRoute("/basic_service/<uuid:basic_service_id>")
183
184
  @as_flask_view()
184
185
  class show_basic_service(ShowBasicServiceView): ...
186
+
187
+
188
+ @AuthenticatedUserRoute("/plan_details/<uuid:plan_id>")
189
+ @as_flask_view()
190
+ class plan_details(GetPlanDetailsView): ...
@@ -21,6 +21,14 @@
21
21
  <div class="subtitle"></div>
22
22
  </div>
23
23
  </a>
24
+ <div class="pt-3"></div>
25
+ <a href="{{ url_for('main_company.request_cooperation') }}">
26
+ <div class="box has-background-primary-light">
27
+ <h1 class="title is-5"><span class="icon">{{ "envelope"|icon }}</span>
28
+ {{ gettext("Request cooperation") }}</h1>
29
+ <div class="subtitle"></div>
30
+ </div>
31
+ </a>
24
32
  </div>
25
33
  </div>
26
34
  <div class="section has-text-centered">
@@ -175,6 +183,18 @@
175
183
  </p>
176
184
  </div>
177
185
  </div>
186
+ <div class="media-right">
187
+ <form action="{{ url_for('main_company.end_plan_cooperation') }}" method="post">
188
+ <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
189
+ <input type="hidden" name="plan_id" value="{{ plan.plan_id }}">
190
+ <input type="hidden" name="cooperation_id" value="{{ plan.coop_id }}">
191
+ <button class="button large-button is-danger"
192
+ type="submit"
193
+ title="{{ gettext('End cooperation') }}">
194
+ {{ "times"|icon }}
195
+ </button>
196
+ </form>
197
+ </div>
178
198
  </article>
179
199
  {% endfor %}
180
200
  {% else %}
@@ -8,5 +8,4 @@
8
8
  {% block content %}
9
9
  {% from 'macros/plan_details.html' import plan_details %}
10
10
  {{ plan_details(view_model) }}
11
-
12
- {% endblock %}
11
+ {% endblock %}
@@ -5,19 +5,11 @@ from uuid import UUID
5
5
  from flask import url_for
6
6
 
7
7
  from workers_control.core.records import ConsumptionType
8
- from workers_control.web.session import UserRole
9
8
 
10
9
 
11
10
  class GeneralUrlIndex:
12
- def get_plan_details_url(self, user_role: Optional[UserRole], plan_id: UUID) -> str:
13
- if user_role == UserRole.company:
14
- return url_for("main_company.plan_details", plan_id=plan_id)
15
- elif user_role == UserRole.member:
16
- return url_for("main_member.plan_details", plan_id=plan_id)
17
- elif user_role == UserRole.accountant:
18
- return url_for("main_accountant.plan_details", plan_id=plan_id)
19
- else:
20
- raise ValueError(f"Plan summary url is unsupported for {user_role}")
11
+ def get_plan_details_url(self, plan_id: UUID) -> str:
12
+ return url_for("main_user.plan_details", plan_id=plan_id)
21
13
 
22
14
  def get_accountant_invitation_url(self, token: str) -> str:
23
15
  return url_for("auth.signup_accountant", token=token)
@@ -0,0 +1,39 @@
1
+ from dataclasses import dataclass
2
+ from uuid import UUID
3
+
4
+ import flask
5
+
6
+ from workers_control.core.interactors.end_cooperation import (
7
+ EndCooperationInteractor,
8
+ EndCooperationRequest,
9
+ )
10
+ from workers_control.db import commit_changes
11
+ from workers_control.flask.flask_session import FlaskSession
12
+ from workers_control.flask.types import Response
13
+ from workers_control.web.www.presenters.end_plan_cooperation_presenter import (
14
+ EndPlanCooperationPresenter,
15
+ )
16
+
17
+
18
+ @dataclass
19
+ class EndPlanCooperationView:
20
+ interactor: EndCooperationInteractor
21
+ presenter: EndPlanCooperationPresenter
22
+ flask_session: FlaskSession
23
+
24
+ @commit_changes
25
+ def POST(self) -> Response:
26
+ form = flask.request.form
27
+ current_user = self.flask_session.get_current_user()
28
+ assert current_user
29
+ cooperation_id = UUID(form["cooperation_id"].strip())
30
+ plan_id = UUID(form["plan_id"].strip())
31
+ response = self.interactor.execute(
32
+ EndCooperationRequest(
33
+ requester_id=current_user,
34
+ plan_id=plan_id,
35
+ cooperation_id=cooperation_id,
36
+ )
37
+ )
38
+ view_model = self.presenter.render_response(response)
39
+ return flask.redirect(view_model.redirection_url)
@@ -6,15 +6,15 @@ from flask import render_template
6
6
  from workers_control.core.interactors.get_plan_details import GetPlanDetailsInteractor
7
7
  from workers_control.flask.types import Response
8
8
  from workers_control.flask.views.http_error_view import http_404
9
- from workers_control.web.www.presenters.get_plan_details_company_presenter import (
10
- GetPlanDetailsCompanyPresenter,
9
+ from workers_control.web.www.presenters.get_plan_details_presenter import (
10
+ GetPlanDetailsPresenter,
11
11
  )
12
12
 
13
13
 
14
14
  @dataclass
15
- class GetPlanDetailsCompanyView:
15
+ class GetPlanDetailsView:
16
16
  interactor: GetPlanDetailsInteractor
17
- presenter: GetPlanDetailsCompanyPresenter
17
+ presenter: GetPlanDetailsPresenter
18
18
 
19
19
  def GET(self, plan_id: UUID) -> Response:
20
20
  interactor_request = GetPlanDetailsInteractor.Request(plan_id)
@@ -23,7 +23,7 @@ class GetPlanDetailsCompanyView:
23
23
  return http_404()
24
24
  view_model = self.presenter.present(interactor_response)
25
25
  return render_template(
26
- "company/plan_details.html",
26
+ "user/plan_details.html",
27
27
  view_model=view_model,
28
28
  navbar_items=self.presenter.create_navbar_items(),
29
29
  )
@@ -7,21 +7,17 @@ need different urls for different roles include the user role in the
7
7
  arguments of the declared method.
8
8
  """
9
9
 
10
- from dataclasses import dataclass
11
10
  from decimal import Decimal
12
11
  from typing import Optional, Protocol
13
12
  from uuid import UUID
14
13
 
15
14
  from workers_control.core.records import ConsumptionType
16
- from workers_control.web.session import Session, UserRole
17
15
 
18
16
 
19
17
  class UrlIndex(Protocol):
20
18
  def get_member_dashboard_url(self) -> str: ...
21
19
 
22
- def get_plan_details_url(
23
- self, *, user_role: Optional[UserRole], plan_id: UUID
24
- ) -> str: ...
20
+ def get_plan_details_url(self, plan_id: UUID) -> str: ...
25
21
 
26
22
  def get_work_invite_url(self, invite_id: UUID) -> str: ...
27
23
 
@@ -183,22 +179,3 @@ class UrlIndex(Protocol):
183
179
  def get_basic_service_url(self, basic_service_id: UUID) -> str: ...
184
180
 
185
181
  def get_deactivate_basic_service_url(self, basic_service_id: UUID) -> str: ...
186
-
187
-
188
- @dataclass
189
- class UserUrlIndex:
190
- """This class is not an interface and therefore should not be
191
- implemented by the web framework. It is merely used internally as
192
- a convinience interface. You should refrain from using this class
193
- in your tests and instead rely on the UrlIndex interface. In a
194
- test scenario you most likely know in advance if you expect a url
195
- intended for a member, company or any other role. This is why the
196
- UrlIndex interface is much better suited for testing needs.
197
- """
198
-
199
- session: Session
200
- url_index: UrlIndex
201
-
202
- def get_plan_details_url(self, plan_id: UUID) -> str:
203
- user_role = self.session.get_user_role()
204
- return self.url_index.get_plan_details_url(user_role=user_role, plan_id=plan_id)
@@ -1,11 +1,9 @@
1
1
  from dataclasses import dataclass
2
- from urllib.parse import urlparse
3
2
  from uuid import UUID
4
3
 
5
4
  from workers_control.core.interactors.end_cooperation import EndCooperationResponse
6
5
  from workers_control.web.notification import Notifier
7
6
  from workers_control.web.request import Request
8
- from workers_control.web.session import Session
9
7
  from workers_control.web.translator import Translator
10
8
  from workers_control.web.url_index import UrlIndex
11
9
 
@@ -20,7 +18,6 @@ class EndCooperationPresenter:
20
18
  notifier: Notifier
21
19
  url_index: UrlIndex
22
20
  translator: Translator
23
- session: Session
24
21
 
25
22
  def present(
26
23
  self, response: EndCooperationResponse, *, web_request: Request
@@ -37,23 +34,9 @@ class EndCooperationPresenter:
37
34
  return self.ViewModel(show_404=False, redirect_url=redirect_url)
38
35
 
39
36
  def _get_redirect_url(self, request: Request) -> str:
40
- referer = request.get_header("Referer")
41
37
  query_string = request.query_string()
42
- plan_id = query_string.get_last_value("plan_id") or request.get_form("plan_id")
43
38
  cooperation_id = query_string.get_last_value(
44
39
  "cooperation_id"
45
40
  ) or request.get_form("cooperation_id")
46
- assert plan_id
47
41
  assert cooperation_id
48
- if referer:
49
- if self._refers_from_plan_details(referer):
50
- url = self.url_index.get_plan_details_url(
51
- user_role=self.session.get_user_role(), plan_id=UUID(plan_id)
52
- )
53
- return url
54
- url = self.url_index.get_coop_summary_url(coop_id=UUID(cooperation_id))
55
- return url
56
-
57
- def _refers_from_plan_details(self, referer: str) -> bool:
58
- referer_path = urlparse(referer).path
59
- return True if referer_path.startswith("/company/plan_details") else False
42
+ return self.url_index.get_coop_summary_url(coop_id=UUID(cooperation_id))
@@ -0,0 +1,29 @@
1
+ from dataclasses import dataclass
2
+
3
+ from workers_control.core.interactors.end_cooperation import EndCooperationResponse
4
+ from workers_control.web.notification import Notifier
5
+ from workers_control.web.translator import Translator
6
+ from workers_control.web.url_index import UrlIndex
7
+
8
+
9
+ @dataclass
10
+ class ViewModel:
11
+ redirection_url: str
12
+
13
+
14
+ @dataclass
15
+ class EndPlanCooperationPresenter:
16
+ translator: Translator
17
+ notifier: Notifier
18
+ url_index: UrlIndex
19
+
20
+ def render_response(self, response: EndCooperationResponse) -> ViewModel:
21
+ if not response.is_rejected:
22
+ self.notifier.display_info(
23
+ self.translator.gettext("Cooperation has been terminated.")
24
+ )
25
+ else:
26
+ self.notifier.display_warning(
27
+ self.translator.gettext("Cooperation could not be terminated.")
28
+ )
29
+ return ViewModel(redirection_url=self.url_index.get_my_cooperations_url())
@@ -9,7 +9,7 @@ from workers_control.core.interactors.get_company_summary import (
9
9
  )
10
10
  from workers_control.web.formatters.datetime_formatter import DatetimeFormatter
11
11
  from workers_control.web.translator import Translator
12
- from workers_control.web.url_index import UrlIndex, UserUrlIndex
12
+ from workers_control.web.url_index import UrlIndex
13
13
  from workers_control.web.www.navbar import NavbarItem
14
14
 
15
15
 
@@ -57,7 +57,6 @@ class GetCompanySummaryViewModel:
57
57
 
58
58
  @dataclass
59
59
  class GetCompanySummarySuccessPresenter:
60
- user_url_index: UserUrlIndex
61
60
  translator: Translator
62
61
  url_index: UrlIndex
63
62
  control_thresholds: ControlThresholds
@@ -125,8 +124,8 @@ class GetCompanySummarySuccessPresenter:
125
124
  return PlanDetailsWeb(
126
125
  id=str(plan_details.id),
127
126
  name=plan_details.name,
128
- url=self.user_url_index.get_plan_details_url(
129
- plan_details.id,
127
+ url=self.url_index.get_plan_details_url(
128
+ plan_id=plan_details.id,
130
129
  ),
131
130
  status=(
132
131
  self.translator.gettext("Active")
@@ -5,7 +5,7 @@ from typing import List, Optional
5
5
  from workers_control.core.interactors.get_coop_summary import GetCoopSummaryResponse
6
6
 
7
7
  from ...translator import Translator
8
- from ...url_index import UrlIndex, UserUrlIndex
8
+ from ...url_index import UrlIndex
9
9
  from ..navbar import NavbarItem
10
10
 
11
11
 
@@ -37,7 +37,6 @@ class GetCoopSummaryViewModel:
37
37
 
38
38
  @dataclass
39
39
  class GetCoopSummarySuccessPresenter:
40
- user_url_index: UserUrlIndex
41
40
  url_index: UrlIndex
42
41
  translator: Translator
43
42
 
@@ -73,7 +72,7 @@ class GetCoopSummarySuccessPresenter:
73
72
  AssociatedPlan(
74
73
  plan_id=str(plan.plan_id),
75
74
  plan_name=plan.plan_name,
76
- plan_url=self.user_url_index.get_plan_details_url(plan.plan_id),
75
+ plan_url=self.url_index.get_plan_details_url(plan_id=plan.plan_id),
77
76
  plan_individual_price=self.__format_price(
78
77
  plan.plan_individual_price
79
78
  ),
@@ -2,11 +2,14 @@ from dataclasses import dataclass
2
2
  from decimal import Decimal
3
3
  from typing import List, Optional, Tuple
4
4
 
5
- from workers_control.core.services.plan_details import PlanDetails
5
+ from workers_control.core.interactors.get_plan_details import (
6
+ GetPlanDetailsInteractor,
7
+ PlanDetails,
8
+ )
9
+ from workers_control.web.formatters.datetime_formatter import DatetimeFormatter
6
10
  from workers_control.web.translator import Translator
7
11
  from workers_control.web.url_index import UrlIndex
8
-
9
- from .datetime_formatter import DatetimeFormatter
12
+ from workers_control.web.www.navbar import NavbarItem
10
13
 
11
14
 
12
15
  @dataclass
@@ -32,12 +35,27 @@ class PlanDetailsWeb:
32
35
 
33
36
 
34
37
  @dataclass
35
- class PlanDetailsFormatter:
36
- url_index: UrlIndex
38
+ class GetPlanDetailsViewModel:
39
+ details: PlanDetailsWeb
40
+
41
+
42
+ @dataclass
43
+ class GetPlanDetailsPresenter:
37
44
  translator: Translator
45
+ url_index: UrlIndex
38
46
  datetime_formatter: DatetimeFormatter
39
47
 
40
- def format_plan_details(self, plan_details: PlanDetails) -> PlanDetailsWeb:
48
+ def create_navbar_items(self) -> list[NavbarItem]:
49
+ return [NavbarItem(text=self.translator.gettext("Plan information"), url=None)]
50
+
51
+ def present(
52
+ self, response: GetPlanDetailsInteractor.Response
53
+ ) -> GetPlanDetailsViewModel:
54
+ return GetPlanDetailsViewModel(
55
+ details=self._format_plan_details(response.plan_details),
56
+ )
57
+
58
+ def _format_plan_details(self, plan_details: PlanDetails) -> PlanDetailsWeb:
41
59
  return PlanDetailsWeb(
42
60
  plan_id=(self.translator.gettext("Plan ID"), str(plan_details.plan_id)),
43
61
  activity_string=(
@@ -5,7 +5,6 @@ from dataclasses import dataclass
5
5
  from workers_control.core.interactors.get_plan_for_review import (
6
6
  GetPlanForReviewInteractor as Interactor,
7
7
  )
8
- from workers_control.web.session import UserRole
9
8
  from workers_control.web.translator import Translator
10
9
  from workers_control.web.url_index import UrlIndex
11
10
  from workers_control.web.www.navbar import NavbarItem
@@ -27,7 +26,7 @@ class GetPlanForReviewPresenter:
27
26
  return self.ViewModel(
28
27
  product_name=response.product_name,
29
28
  plan_details_url=self.url_index.get_plan_details_url(
30
- user_role=UserRole.accountant, plan_id=response.plan_id
29
+ plan_id=response.plan_id
31
30
  ),
32
31
  review_form_action_url=self.url_index.get_plan_review_url(response.plan_id),
33
32
  navbar_items=[