workers-control 0.2.2__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 (605) hide show
  1. {workers_control-0.2.2/src/workers_control.egg-info → workers_control-0.2.4}/PKG-INFO +6 -6
  2. {workers_control-0.2.2 → workers_control-0.2.4}/pyproject.toml +7 -7
  3. workers_control-0.2.2/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.4/src/workers_control/core/interactors/get_plan_for_review.py +26 -0
  5. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/reject_plan.py +1 -1
  6. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/records.py +7 -0
  7. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/repositories.py +6 -5
  8. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/480a749375de_drop_transaction_table.py +4 -0
  9. workers_control-0.2.4/src/workers_control/db/migrations/versions/f4a9c2e1b6d3_replace_plan_review_with_plan_rejection.py +53 -0
  10. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/models.py +7 -7
  11. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/repositories.py +35 -43
  12. workers_control-0.2.4/src/workers_control/flask/routes/accountant/routes.py +55 -0
  13. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/routes.py +8 -8
  14. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/routes.py +0 -8
  15. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/routes.py +7 -0
  16. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.js +27 -4
  17. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/plans-to-review-list.html +5 -13
  18. workers_control-0.2.4/src/workers_control/flask/templates/accountant/review_plan.html +41 -0
  19. workers_control-0.2.4/src/workers_control/flask/templates/base.html +65 -0
  20. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_cooperation.html +2 -2
  21. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/invite_worker_to_company.html +2 -1
  22. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_registered_hours_worked.html +2 -1
  23. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_consumptions.html +2 -1
  24. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_cooperations.html +22 -1
  25. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_plans.html +2 -1
  26. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/remove_worker_from_company.html +2 -1
  27. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_cooperation.html +2 -1
  28. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/review_registered_consumptions.html +2 -1
  29. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/navbar.html +1 -1
  30. workers_control-0.2.4/src/workers_control/flask/templates/macros/navigation.html +63 -0
  31. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/basic_services.html +2 -1
  32. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumption_details.html +2 -1
  33. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumptions.html +2 -1
  34. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/create_basic_service.html +2 -2
  35. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/my_account.html +2 -1
  36. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_accounts.html +2 -1
  37. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_summary.html +2 -1
  38. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/coop_summary.html +2 -1
  39. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_all_cooperations.html +2 -1
  40. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_transfers.html +2 -1
  41. {workers_control-0.2.2/src/workers_control/flask/templates/accountant → workers_control-0.2.4/src/workers_control/flask/templates/user}/plan_details.html +3 -3
  42. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_companies.html +2 -1
  43. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_offers.html +2 -1
  44. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/statistics.html +2 -1
  45. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/de/LC_MESSAGES/messages.po +331 -308
  46. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/en/LC_MESSAGES/messages.po +327 -305
  47. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/es/LC_MESSAGES/messages.po +331 -308
  48. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/messages.pot +318 -305
  49. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/url_index.py +7 -15
  50. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/coop_summary_view.py +5 -1
  51. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_basic_service_view.py +5 -1
  52. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_cooperation_view.py +5 -1
  53. workers_control-0.2.4/src/workers_control/flask/views/end_plan_cooperation_view.py +39 -0
  54. workers_control-0.2.2/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 +9 -5
  55. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_private_consumption_details.py +5 -1
  56. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_statistics_view.py +5 -1
  57. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/invite_worker_to_company.py +2 -0
  58. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_all_cooperations_view.py +5 -1
  59. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_basic_services_of_worker_view.py +1 -0
  60. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_registered_hours_worked_view.py +1 -0
  61. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_transfers.py +7 -1
  62. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_companies.py +1 -0
  63. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_company_consumptions_view.py +1 -0
  64. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_offers.py +1 -0
  65. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_private_consumptions.py +1 -0
  66. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/remove_worker_from_company_view.py +5 -1
  67. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_cooperation_view.py +7 -1
  68. workers_control-0.2.4/src/workers_control/flask/views/review_plan_view.py +75 -0
  69. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/review_registered_consumptions_view.py +1 -0
  70. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_company_accounts_view.py +1 -0
  71. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_member_account_details_view.py +1 -0
  72. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_cooperations_view.py +5 -1
  73. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_plans_view.py +1 -0
  74. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/url_index.py +4 -27
  75. workers_control-0.2.4/src/workers_control/web/www/controllers/review_plan_controller.py +31 -0
  76. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/company_consumptions_presenter.py +4 -0
  77. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_basic_service_presenter.py +12 -0
  78. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_cooperation_presenter.py +12 -0
  79. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/end_cooperation_presenter.py +1 -18
  80. workers_control-0.2.4/src/workers_control/web/www/presenters/end_plan_cooperation_presenter.py +29 -0
  81. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_summary_presenter.py +7 -4
  82. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_coop_summary_presenter.py +8 -3
  83. workers_control-0.2.2/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
  84. workers_control-0.2.4/src/workers_control/web/www/presenters/get_plan_for_review_presenter.py +42 -0
  85. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_statistics_presenter.py +4 -0
  86. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/invite_worker_to_company_presenter.py +4 -0
  87. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_all_cooperations_presenter.py +6 -0
  88. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_basic_services_of_worker_presenter.py +6 -0
  89. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_plans_with_pending_review_presenter.py +11 -6
  90. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_registered_hours_worked_presenter.py +10 -0
  91. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_transfers_presenter.py +4 -0
  92. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumption_details_presenter.py +13 -2
  93. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumptions_presenter.py +4 -0
  94. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/productive_consumption_details_presenter.py +1 -2
  95. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_companies_presenter.py +4 -0
  96. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_offers_presenter.py +6 -3
  97. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/remove_worker_from_company_presenter.py +10 -0
  98. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_cooperation_presenter.py +6 -0
  99. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/review_registered_consumptions_presenter.py +9 -4
  100. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_company_accounts_presenter.py +6 -0
  101. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_member_account_details_presenter.py +4 -0
  102. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_cooperations_presenter.py +13 -10
  103. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_plans_presenter.py +17 -6
  104. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_payout_factor_details_presenter.py +1 -6
  105. {workers_control-0.2.2 → workers_control-0.2.4/src/workers_control.egg-info}/PKG-INFO +6 -6
  106. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/SOURCES.txt +12 -14
  107. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/requires.txt +3 -3
  108. workers_control-0.2.2/src/workers_control/core/interactors/get_plan_details.py +0 -26
  109. workers_control-0.2.2/src/workers_control/flask/routes/accountant/routes.py +0 -116
  110. workers_control-0.2.2/src/workers_control/flask/templates/base.html +0 -54
  111. workers_control-0.2.2/src/workers_control/flask/templates/company/plan_details.html +0 -56
  112. workers_control-0.2.2/src/workers_control/flask/templates/macros/accountant_navigation.html +0 -43
  113. workers_control-0.2.2/src/workers_control/flask/templates/macros/anonymous_navigation.html +0 -45
  114. workers_control-0.2.2/src/workers_control/flask/templates/macros/company_navigation.html +0 -47
  115. workers_control-0.2.2/src/workers_control/flask/templates/macros/member_navigation.html +0 -50
  116. workers_control-0.2.2/src/workers_control/flask/templates/member/plan_details.html +0 -25
  117. workers_control-0.2.2/src/workers_control/flask/views/get_plan_details_member_view.py +0 -32
  118. workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_accountant_presenter.py +0 -31
  119. workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_company_presenter.py +0 -72
  120. workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_member_presenter.py +0 -35
  121. {workers_control-0.2.2 → workers_control-0.2.4}/LICENSE +0 -0
  122. {workers_control-0.2.2 → workers_control-0.2.4}/MANIFEST.in +0 -0
  123. {workers_control-0.2.2 → workers_control-0.2.4}/README.rst +0 -0
  124. {workers_control-0.2.2 → workers_control-0.2.4}/build_support/__init__.py +0 -0
  125. {workers_control-0.2.2 → workers_control-0.2.4}/build_support/babel.cfg +0 -0
  126. {workers_control-0.2.2 → workers_control-0.2.4}/build_support/backend.py +0 -0
  127. {workers_control-0.2.2 → workers_control-0.2.4}/build_support/project.py +0 -0
  128. {workers_control-0.2.2 → workers_control-0.2.4}/build_support/translations.py +0 -0
  129. {workers_control-0.2.2 → workers_control-0.2.4}/setup.cfg +0 -0
  130. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/__init__.py +0 -0
  131. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/accountant_notifications.py +0 -0
  132. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/anonymization.py +0 -0
  133. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/control_thresholds.py +0 -0
  134. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/datetime_service.py +0 -0
  135. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/decimal.py +0 -0
  136. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/email.py +0 -0
  137. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/email_notifications.py +0 -0
  138. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/injector.py +0 -0
  139. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/__init__.py +0 -0
  140. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_cooperation.py +0 -0
  141. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_coordination_transfer.py +0 -0
  142. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/answer_company_work_invite.py +0 -0
  143. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/approve_plan.py +0 -0
  144. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/cancel_cooperation_solicitation.py +0 -0
  145. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_email_address.py +0 -0
  146. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_name.py +0 -0
  147. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_password.py +0 -0
  148. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_company.py +0 -0
  149. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_member.py +0 -0
  150. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_basic_service.py +0 -0
  151. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_cooperation.py +0 -0
  152. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_draft_from_plan.py +0 -0
  153. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_plan_draft.py +0 -0
  154. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/deactivate_basic_service.py +0 -0
  155. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/delete_draft.py +0 -0
  156. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/deny_cooperation.py +0 -0
  157. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/edit_draft.py +0 -0
  158. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/end_cooperation.py +0 -0
  159. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/file_plan_with_accounting.py +0 -0
  160. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_accountant_dashboard.py +0 -0
  161. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_dashboard.py +0 -0
  162. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_summary.py +0 -0
  163. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coop_summary.py +0 -0
  164. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coordination_transfer_request_details.py +0 -0
  165. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_draft_details.py +0 -0
  166. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_member_dashboard.py +0 -0
  167. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_private_consumption_details.py +0 -0
  168. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_productive_consumption_details.py +0 -0
  169. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_statistics.py +0 -0
  170. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_user_account_details.py +0 -0
  171. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/hide_plan.py +0 -0
  172. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/invite_worker_to_company.py +0 -0
  173. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_active_plans_of_company.py +0 -0
  174. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_all_cooperations.py +0 -0
  175. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_available_languages.py +0 -0
  176. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_basic_services_of_worker.py +0 -0
  177. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_company.py +0 -0
  178. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_cooperation.py +0 -0
  179. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_my_cooperating_plans.py +0 -0
  180. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_pending_work_invites.py +0 -0
  181. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_plans_with_pending_review.py +0 -0
  182. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_registered_hours_worked.py +0 -0
  183. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_transfers.py +0 -0
  184. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_workers.py +0 -0
  185. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_accountant.py +0 -0
  186. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_company.py +0 -0
  187. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_member.py +0 -0
  188. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/preview_private_consumption.py +0 -0
  189. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_companies.py +0 -0
  190. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_company_consumptions.py +0 -0
  191. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_offers.py +0 -0
  192. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_private_consumptions.py +0 -0
  193. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_accountant.py +0 -0
  194. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_company.py +0 -0
  195. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_hours_worked.py +0 -0
  196. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_member.py +0 -0
  197. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption.py +0 -0
  198. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption_of_basic_service.py +0 -0
  199. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption.py +0 -0
  200. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption_of_basic_service.py +0 -0
  201. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/remove_worker_from_company.py +0 -0
  202. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_cooperation.py +0 -0
  203. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_coordination_transfer.py +0 -0
  204. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_email_address_change.py +0 -0
  205. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_user_password_reset.py +0 -0
  206. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_confirmation_mail.py +0 -0
  207. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_work_invite.py +0 -0
  208. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/review_registered_consumptions.py +0 -0
  209. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/revoke_plan_filing.py +0 -0
  210. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption.py +0 -0
  211. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption_of_basic_service.py +0 -0
  212. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption.py +0 -0
  213. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption_of_basic_service.py +0 -0
  214. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/send_accountant_registration_token.py +0 -0
  215. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_a_account_details.py +0 -0
  216. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_basic_service.py +0 -0
  217. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_accounts.py +0 -0
  218. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_cooperations.py +0 -0
  219. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_work_invite_details.py +0 -0
  220. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_member_account_details.py +0 -0
  221. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_my_plans.py +0 -0
  222. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_p_account_details.py +0 -0
  223. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_payout_factor_details.py +0 -0
  224. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_prd_account_details.py +0 -0
  225. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_psf_account_details.py +0 -0
  226. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_r_account_details.py +0 -0
  227. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/password_hasher.py +0 -0
  228. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/__init__.py +0 -0
  229. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/account_details.py +0 -0
  230. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/compensation_transfers.py +0 -0
  231. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/payout_factor.py +0 -0
  232. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/price_calculator.py +0 -0
  233. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/psf_balance.py +0 -0
  234. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/transfers.py +0 -0
  235. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/__init__.py +0 -0
  236. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/db.py +0 -0
  237. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/alembic.ini +0 -0
  238. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/env.py +0 -0
  239. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/script.py.mako +0 -0
  240. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/17911726c134_add_deactivated_on_to_basic_service.py +0 -0
  241. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/399a221ebea4_add_private_consumption_of_basic_.py +0 -0
  242. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/4fd90069eb82_remove_social_accounting_account.py +0 -0
  243. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/686f2af1cbfe_add_basic_service_transfer_types.py +0 -0
  244. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/68ac7ccf6086_create_table_emailoutbox.py +0 -0
  245. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/7a4d0412c2a7_add_productive_consumption_of_basic_.py +0 -0
  246. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/a3e7b2c1d4f5_use_native_uuid_column_types.py +0 -0
  247. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/b40539bf0293_add_basic_service_table.py +0 -0
  248. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/c5e8a9d0f1b2_add_taxes_to_basic_service_consumptions.py +0 -0
  249. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/c9f2e1a4b8d7_add_outbox_status_columns.py +0 -0
  250. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/__init__.py +0 -0
  251. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/interface.py +0 -0
  252. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/smtp_service.py +0 -0
  253. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/worker.py +0 -0
  254. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/__init__.py +0 -0
  255. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/babel.py +0 -0
  256. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/class_based_view.py +0 -0
  257. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/commands.py +0 -0
  258. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/__init__.py +0 -0
  259. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/checks.py +0 -0
  260. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/loader.py +0 -0
  261. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/options.py +0 -0
  262. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/production_defaults.py +0 -0
  263. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/context_processors.py +0 -0
  264. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/control_thresholds.py +0 -0
  265. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/database.py +0 -0
  266. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/datetime.py +0 -0
  267. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/dependency_injection.py +0 -0
  268. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/email_configuration.py +0 -0
  269. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/extensions.py +0 -0
  270. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/filters.py +0 -0
  271. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_colors.py +0 -0
  272. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_request.py +0 -0
  273. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_session.py +0 -0
  274. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/forms.py +0 -0
  275. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/language_repository.py +0 -0
  276. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/logging_config.json +0 -0
  277. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_sender/__init__.py +0 -0
  278. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/__init__.py +0 -0
  279. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/interface.py +0 -0
  280. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/mail_storage_service.py +0 -0
  281. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/notifications.py +0 -0
  282. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/password_hasher.py +0 -0
  283. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/payout_factor.py +0 -0
  284. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/plotter.py +0 -0
  285. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/profiling.py +0 -0
  286. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/__init__.py +0 -0
  287. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/__init__.py +0 -0
  288. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/blueprint.py +0 -0
  289. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/__init__.py +0 -0
  290. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/routes.py +0 -0
  291. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/__init__.py +0 -0
  292. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/blueprint.py +0 -0
  293. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/__init__.py +0 -0
  294. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/blueprint.py +0 -0
  295. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/__init__.py +0 -0
  296. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/blueprint.py +0 -0
  297. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/__init__.py +0 -0
  298. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/routes.py +0 -0
  299. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/__init__.py +0 -0
  300. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/blueprint.py +0 -0
  301. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/bulma.css +0 -0
  302. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/colors.css +0 -0
  303. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/favicon.ico +0 -0
  304. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.css +0 -0
  305. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.module.js +0 -0
  306. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/dashboard.html +0 -0
  307. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/notification-about-new-plan.html +0 -0
  308. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/accountant_invitation.html +0 -0
  309. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/activate.html +0 -0
  310. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/help.html +0 -0
  311. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_accountant.html +0 -0
  312. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_company.html +0 -0
  313. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_member.html +0 -0
  314. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/password_reset_confirmation_email.html +0 -0
  315. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/request_password_reset.html +0 -0
  316. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password.html +0 -0
  317. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_email.html +0 -0
  318. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_invalid.html +0 -0
  319. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_accountant.html +0 -0
  320. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_company.html +0 -0
  321. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_member.html +0 -0
  322. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/start.html +0 -0
  323. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_company.html +0 -0
  324. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_member.html +0 -0
  325. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/consumption_details.html +0 -0
  326. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_draft.html +0 -0
  327. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/dashboard.html +0 -0
  328. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/draft_details.html +0 -0
  329. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_pending_work_invites.html +0 -0
  330. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_hours_worked.html +0 -0
  331. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_productive_consumption.html +0 -0
  332. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_productive_consumption_of_basic_service.html +0 -0
  333. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/rejected_plan_notification.html +0 -0
  334. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_coordination_transfer.html +0 -0
  335. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/show_coordination_transfer_request.html +0 -0
  336. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/at.html +0 -0
  337. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/basket-shopping.html +0 -0
  338. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/book.html +0 -0
  339. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/calendar.html +0 -0
  340. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-line.html +0 -0
  341. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-pie.html +0 -0
  342. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/check.html +0 -0
  343. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/copy.html +0 -0
  344. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/credit-card.html +0 -0
  345. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/edit.html +0 -0
  346. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/envelope.html +0 -0
  347. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exchange-alt.html +0 -0
  348. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exclamation-triangle.html +0 -0
  349. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye-slashed.html +0 -0
  350. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye.html +0 -0
  351. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file-circle-plus.html +0 -0
  352. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file.html +0 -0
  353. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hands-helping.html +0 -0
  354. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hourglass.html +0 -0
  355. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/industry.html +0 -0
  356. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/info-circle.html +0 -0
  357. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/key.html +0 -0
  358. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/list.html +0 -0
  359. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/oil-can.html +0 -0
  360. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/redo.html +0 -0
  361. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/square-arrow-up-right.html +0 -0
  362. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/times.html +0 -0
  363. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/trash.html +0 -0
  364. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/user.html +0 -0
  365. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/users.html +0 -0
  366. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/company_summary.html +0 -0
  367. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/copy_toggle.html +0 -0
  368. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/draft_form.html +0 -0
  369. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/form_field_error.html +0 -0
  370. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/language_selection.html +0 -0
  371. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/pagination.html +0 -0
  372. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/plan_details.html +0 -0
  373. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/show_notifications.html +0 -0
  374. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/tooltips.html +0 -0
  375. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/transfers.html +0 -0
  376. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/dashboard.html +0 -0
  377. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/notification-about-work-invitation.html +0 -0
  378. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/register_private_consumption.html +0 -0
  379. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/register_private_consumption_of_basic_service.html +0 -0
  380. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/show_company_work_invite_details.html +0 -0
  381. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_details.html +0 -0
  382. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_psf.html +0 -0
  383. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/change_user_name.html +0 -0
  384. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_a.html +0 -0
  385. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_p.html +0 -0
  386. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_prd.html +0 -0
  387. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_r.html +0 -0
  388. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/confirm_email_address_change.html +0 -0
  389. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/http_error.html +0 -0
  390. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_coordinations_of_cooperation.html +0 -0
  391. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/name_change_confirmation.html +0 -0
  392. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_address_change.html +0 -0
  393. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_notification.html +0 -0
  394. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_warning.html +0 -0
  395. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_basic_service.html +0 -0
  396. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_payout_factor_details.html +0 -0
  397. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/text_renderer.py +0 -0
  398. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/token.py +0 -0
  399. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translator.py +0 -0
  400. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/types.py +0 -0
  401. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/__init__.py +0 -0
  402. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/accept_cooperation_request_view.py +0 -0
  403. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/accountant_invitation_email_view.py +0 -0
  404. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/cancel_cooperation_request_view.py +0 -0
  405. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/change_email_address_view.py +0 -0
  406. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/change_user_name_view.py +0 -0
  407. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/company_dashboard_view.py +0 -0
  408. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/company_work_invite_view.py +0 -0
  409. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_from_plan_view.py +0 -0
  410. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_view.py +0 -0
  411. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/deactivate_basic_service_view.py +0 -0
  412. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/delete_draft_view.py +0 -0
  413. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/deny_cooperation_view.py +0 -0
  414. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/draft_details_view.py +0 -0
  415. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/end_cooperation_view.py +0 -0
  416. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/file_plan_with_accounting_view.py +0 -0
  417. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_productive_consumption_details.py +0 -0
  418. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/healthcheck_view.py +0 -0
  419. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/hide_plan_view.py +0 -0
  420. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/http_error_view.py +0 -0
  421. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_coordinators_of_cooperation_view.py +0 -0
  422. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_pending_work_invites_view.py +0 -0
  423. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_accountant_view.py +0 -0
  424. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_company_view.py +0 -0
  425. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_member_view.py +0 -0
  426. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/member_dashboard_view.py +0 -0
  427. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_hours_worked_view.py +0 -0
  428. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_private_consumption.py +0 -0
  429. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_private_consumption_of_basic_service_view.py +0 -0
  430. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_productive_consumption.py +0 -0
  431. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_productive_consumption_of_basic_service_view.py +0 -0
  432. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_coordination_transfer_view.py +0 -0
  433. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_email_address_change_view.py +0 -0
  434. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_password_reset_view.py +0 -0
  435. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/resend_confirmation_view.py +0 -0
  436. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/reset_password_view.py +0 -0
  437. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/revoke_plan_filing_view.py +0 -0
  438. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_a_account_details_view.py +0 -0
  439. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_basic_service_view.py +0 -0
  440. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_coordination_transfer_request_view.py +0 -0
  441. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_p_account_details_view.py +0 -0
  442. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_payout_factor_details_view.py +0 -0
  443. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_prd_account_details_view.py +0 -0
  444. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_psf_account_details_view.py +0 -0
  445. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_r_account_details_view.py +0 -0
  446. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_accountant_view.py +0 -0
  447. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_company_view.py +0 -0
  448. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_member_view.py +0 -0
  449. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/wsgi.py +0 -0
  450. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/__init__.py +0 -0
  451. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/colors.py +0 -0
  452. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/__init__.py +0 -0
  453. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/accountant_invitation_presenter.py +0 -0
  454. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/company_notifier.py +0 -0
  455. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/cooperation_request_email_presenter.py +0 -0
  456. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_change_confirmation_presenter.py +0 -0
  457. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_change_warning_view.py +0 -0
  458. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_sender.py +0 -0
  459. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/invite_worker_presenter.py +0 -0
  460. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/name_change_confirmation_presenter.py +0 -0
  461. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/notify_about_worker_removal_from_company_presenter.py +0 -0
  462. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/notify_accountant_about_new_plan_presenter.py +0 -0
  463. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/registration_email_presenter.py +0 -0
  464. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/request_coordination_transfer_presenter.py +0 -0
  465. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/reset_password_email_presenter.py +0 -0
  466. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/formatters/__init__.py +0 -0
  467. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/formatters/datetime_formatter.py +0 -0
  468. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/__init__.py +0 -0
  469. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/fields.py +0 -0
  470. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/formfield_parsers.py +0 -0
  471. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/json.py +0 -0
  472. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/language_service.py +0 -0
  473. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/malformed_input_data.py +0 -0
  474. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/notification.py +0 -0
  475. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/pagination.py +0 -0
  476. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/request.py +0 -0
  477. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/session.py +0 -0
  478. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/text_renderer.py +0 -0
  479. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/token.py +0 -0
  480. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/translator.py +0 -0
  481. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/__init__.py +0 -0
  482. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/authentication.py +0 -0
  483. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/__init__.py +0 -0
  484. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/accept_coordination_transfer_controller.py +0 -0
  485. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/answer_company_work_invite_controller.py +0 -0
  486. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/approve_plan_controller.py +0 -0
  487. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_email_address_controller.py +0 -0
  488. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_name_controller.py +0 -0
  489. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_company_controller.py +0 -0
  490. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_member_controller.py +0 -0
  491. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_basic_service_controller.py +0 -0
  492. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_controller.py +0 -0
  493. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_from_plan_controller.py +0 -0
  494. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/deactivate_basic_service_controller.py +0 -0
  495. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/delete_draft_controller.py +0 -0
  496. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/draft_form_validator.py +0 -0
  497. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/edit_draft_controller.py +0 -0
  498. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/end_cooperation_controller.py +0 -0
  499. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/file_plan_with_accounting_controller.py +0 -0
  500. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_private_consumption_details_controller.py +0 -0
  501. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_productive_consumption_details_controller.py +0 -0
  502. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/invite_worker_to_company_controller.py +0 -0
  503. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_basic_services_of_worker_controller.py +0 -0
  504. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_pending_work_invites_controller.py +0 -0
  505. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_registered_hours_worked_controller.py +0 -0
  506. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_transfers_controller.py +0 -0
  507. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_workers_controller.py +0 -0
  508. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/log_in_accountant_controller.py +0 -0
  509. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_companies_controller.py +0 -0
  510. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_offers_controller.py +0 -0
  511. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_private_consumptions_controller.py +0 -0
  512. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_accountant_controller.py +0 -0
  513. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_company_controller.py +0 -0
  514. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_hours_worked_controller.py +0 -0
  515. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_member_controller.py +0 -0
  516. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_controller.py +0 -0
  517. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_form_validator.py +0 -0
  518. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_controller.py +0 -0
  519. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_of_basic_service_form_validator.py +0 -0
  520. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_controller.py +0 -0
  521. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_controller.py +0 -0
  522. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_of_basic_service_form_validator.py +0 -0
  523. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reject_plan_controller.py +0 -0
  524. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/remove_worker_from_company_controller.py +0 -0
  525. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_cooperation_controller.py +0 -0
  526. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_coordination_transfer_controller.py +0 -0
  527. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_email_address_change_controller.py +0 -0
  528. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_password_reset_controller.py +0 -0
  529. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/resend_work_invite_controller.py +0 -0
  530. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reset_password_controller.py +0 -0
  531. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/review_registered_consumptions_controller.py +0 -0
  532. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/revoke_plan_filing_controller.py +0 -0
  533. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_private_consumption_controller.py +0 -0
  534. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_private_consumption_of_basic_service_controller.py +0 -0
  535. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_productive_consumption_controller.py +0 -0
  536. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_productive_consumption_of_basic_service_controller.py +0 -0
  537. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_a_account_details_controller.py +0 -0
  538. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_basic_service_controller.py +0 -0
  539. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_company_accounts_controller.py +0 -0
  540. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_company_work_invite_details_controller.py +0 -0
  541. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_p_account_details_controller.py +0 -0
  542. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_prd_account_details_controller.py +0 -0
  543. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_r_account_details_controller.py +0 -0
  544. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/user_account_details_controller.py +0 -0
  545. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/navbar.py +0 -0
  546. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/__init__.py +0 -0
  547. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +0 -0
  548. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_coordination_transfer_presenter.py +0 -0
  549. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/answer_company_work_invite_presenter.py +0 -0
  550. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/approve_plan_presenter.py +0 -0
  551. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/cancel_cooperation_request_presenter.py +0 -0
  552. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_email_address_presenter.py +0 -0
  553. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_name_presenter.py +0 -0
  554. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_from_plan_presenter.py +0 -0
  555. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_presenter.py +0 -0
  556. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deactivate_basic_service_presenter.py +0 -0
  557. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/delete_draft_presenter.py +0 -0
  558. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +0 -0
  559. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/edit_draft_presenter.py +0 -0
  560. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/file_plan_with_accounting_presenter.py +0 -0
  561. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_accountant_dashboard_presenter.py +0 -0
  562. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_dashboard_presenter.py +0 -0
  563. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_coordination_transfer_request_details_presenter.py +0 -0
  564. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_draft_details_presenter.py +0 -0
  565. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_member_dashboard_presenter.py +0 -0
  566. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/hide_plan_presenter.py +0 -0
  567. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_available_languages_presenter.py +0 -0
  568. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_coordinations_of_cooperation_presenter.py +0 -0
  569. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_pending_work_invites_presenter.py +0 -0
  570. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_plans_presenter.py +0 -0
  571. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_workers_presenter.py +0 -0
  572. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_accountant_presenter.py +0 -0
  573. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_company_presenter.py +0 -0
  574. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_member_presenter.py +0 -0
  575. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_accountant_presenter.py +0 -0
  576. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_company_presenter.py +0 -0
  577. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_hours_worked_presenter.py +0 -0
  578. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_member_presenter.py +0 -0
  579. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_private_consumption_of_basic_service_presenter.py +0 -0
  580. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_private_consumption_presenter.py +0 -0
  581. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_productive_consumption_of_basic_service_presenter.py +0 -0
  582. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_productive_consumption_presenter.py +0 -0
  583. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reject_plan_presenter.py +0 -0
  584. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_coordination_transfer_presenter.py +0 -0
  585. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_email_address_change_presenter.py +0 -0
  586. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_password_reset_presenter.py +0 -0
  587. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/resend_work_invite_presenter.py +0 -0
  588. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reset_password_presenter.py +0 -0
  589. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/revoke_plan_filing_presenter.py +0 -0
  590. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_private_consumption_of_basic_service_presenter.py +0 -0
  591. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_private_consumption_presenter.py +0 -0
  592. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_productive_consumption_of_basic_service_presenter.py +0 -0
  593. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_productive_consumption_presenter.py +0 -0
  594. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_a_account_details_presenter.py +0 -0
  595. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_basic_service_presenter.py +0 -0
  596. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_company_work_invite_details_presenter.py +0 -0
  597. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_p_account_details_presenter.py +0 -0
  598. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_prd_account_details_presenter.py +0 -0
  599. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_psf_account_details_presenter.py +0 -0
  600. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_r_account_details_presenter.py +0 -0
  601. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/transfers.py +0 -0
  602. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/user_account_details_presenter.py +0 -0
  603. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/response.py +0 -0
  604. {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/dependency_links.txt +0 -0
  605. {workers_control-0.2.2 → 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.2
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
@@ -8,19 +8,19 @@ Project-URL: Documentation, https://workers-control.readthedocs.io/
8
8
  Project-URL: Changelog, https://github.com/ida-arbeitszeit/workers-control/blob/master/CHANGELOG.md
9
9
  Classifier: Framework :: Flask
10
10
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.12
12
11
  Classifier: Programming Language :: Python :: 3.13
13
- Requires-Python: >=3.12
12
+ Classifier: Programming Language :: Python :: 3.14
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,28 +5,28 @@ backend-path = ["."]
5
5
 
6
6
  [project]
7
7
  name = "workers-control"
8
- version = "0.2.2"
8
+ version = "0.2.4"
9
9
  description = "A flask app for labour time accounting."
10
10
  license = "AGPL-3.0-or-later"
11
- requires-python = ">=3.12"
11
+ requires-python = ">=3.13"
12
12
  classifiers = [
13
13
  "Framework :: Flask",
14
14
  "Programming Language :: Python :: 3",
15
- "Programming Language :: Python :: 3.12",
16
15
  "Programming Language :: Python :: 3.13",
16
+ "Programming Language :: Python :: 3.14",
17
17
  ]
18
18
  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]
@@ -41,7 +41,7 @@ Changelog = "https://github.com/ida-arbeitszeit/workers-control/blob/master/CHAN
41
41
  where = [ "src" ]
42
42
 
43
43
  [tool.black]
44
- target-version = ['py312']
44
+ target-version = ['py313']
45
45
  extend-exclude = '''
46
46
  (
47
47
  ^/src/workers_control/db/migrations/versions/
@@ -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
  )
@@ -0,0 +1,26 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+ from uuid import UUID
5
+
6
+ from workers_control.core.repositories import DatabaseGateway
7
+
8
+
9
+ @dataclass
10
+ class GetPlanForReviewInteractor:
11
+ @dataclass
12
+ class Request:
13
+ plan: UUID
14
+
15
+ @dataclass
16
+ class Response:
17
+ plan_id: UUID
18
+ product_name: str
19
+
20
+ database_gateway: DatabaseGateway
21
+
22
+ def get_plan_for_review(self, request: Request) -> Response | None:
23
+ plan = self.database_gateway.get_plans().with_id(request.plan).first()
24
+ if plan is None:
25
+ return None
26
+ return self.Response(plan_id=plan.id, product_name=plan.prd_name)
@@ -34,7 +34,7 @@ class RejectPlanInteractor:
34
34
  assert planner
35
35
  if plan.is_rejected:
36
36
  return self.Response(is_plan_rejected=False)
37
- matching_plans.update().set_rejection_date(now).perform()
37
+ self.database_gateway.create_plan_rejection(plan_id=plan.id, date=now)
38
38
  email_address_from_planner = (
39
39
  self.database_gateway.get_email_addresses()
40
40
  .that_belong_to_company(planner.id)
@@ -245,6 +245,13 @@ class PlanApproval:
245
245
  transfer_of_credit_a: UUID
246
246
 
247
247
 
248
+ @dataclass
249
+ class PlanRejection:
250
+ id: UUID
251
+ plan_id: UUID
252
+ date: datetime
253
+
254
+
248
255
  class ConsumptionType(Enum):
249
256
  means_of_prod = "means_of_prod"
250
257
  raw_materials = "raw_materials"
@@ -146,11 +146,6 @@ class PlanUpdate(DatabaseUpdate, Protocol):
146
146
  updated through this method.
147
147
  """
148
148
 
149
- def set_rejection_date(self, rejection_date: Optional[datetime]) -> Self:
150
- """Set the rejection date on all matching plans. The return
151
- value counts all the plans that were changed by this method.
152
- """
153
-
154
149
  def hide(self) -> Self: ...
155
150
 
156
151
 
@@ -806,6 +801,12 @@ class DatabaseGateway(Protocol):
806
801
 
807
802
  def get_plan_approvals(self) -> PlanApprovalResult: ...
808
803
 
804
+ def create_plan_rejection(
805
+ self,
806
+ plan_id: UUID,
807
+ date: datetime,
808
+ ) -> records.PlanRejection: ...
809
+
809
810
  def create_basic_service(
810
811
  self,
811
812
  name: str,
@@ -20,6 +20,10 @@ depends_on: Union[str, Sequence[str], None] = None
20
20
 
21
21
 
22
22
  def upgrade() -> None:
23
+ inspector = sa.inspect(op.get_bind())
24
+ if "transaction" not in inspector.get_table_names():
25
+ return
26
+
23
27
  with op.batch_alter_table("transaction") as batch_op:
24
28
  batch_op.drop_constraint(
25
29
  "transaction_receiving_account_fkey", type_="foreignkey"
@@ -0,0 +1,53 @@
1
+ """Replace plan_review with plan_rejection
2
+
3
+ Revision ID: f4a9c2e1b6d3
4
+ Revises: c9f2e1a4b8d7
5
+ Create Date: 2026-05-31 12:00:00.000000
6
+
7
+ """
8
+
9
+ from typing import Sequence, Union
10
+
11
+ from alembic import op
12
+ import sqlalchemy as sa
13
+
14
+
15
+ # revision identifiers, used by Alembic.
16
+ revision: str = "f4a9c2e1b6d3"
17
+ down_revision: Union[str, None] = "c9f2e1a4b8d7"
18
+ branch_labels: Union[str, Sequence[str], None] = None
19
+ depends_on: Union[str, Sequence[str], None] = None
20
+
21
+
22
+ def upgrade() -> None:
23
+ op.create_table(
24
+ "plan_rejection",
25
+ sa.Column("id", sa.Uuid(), nullable=False),
26
+ sa.Column("plan_id", sa.Uuid(), nullable=False),
27
+ sa.Column("date", sa.DateTime(), nullable=False),
28
+ sa.ForeignKeyConstraint(["plan_id"], ["plan.id"], ondelete="CASCADE"),
29
+ sa.PrimaryKeyConstraint("id"),
30
+ )
31
+ op.execute(
32
+ "INSERT INTO plan_rejection (id, plan_id, date) "
33
+ "SELECT id, plan_id, rejection_date FROM plan_review "
34
+ "WHERE rejection_date IS NOT NULL"
35
+ )
36
+ op.drop_table("plan_review")
37
+
38
+
39
+ def downgrade() -> None:
40
+ op.create_table(
41
+ "plan_review",
42
+ sa.Column("id", sa.Uuid(), nullable=False),
43
+ sa.Column("rejection_date", sa.DateTime(), nullable=True),
44
+ sa.Column("plan_id", sa.Uuid(), nullable=False),
45
+ sa.ForeignKeyConstraint(["plan_id"], ["plan.id"], ondelete="CASCADE"),
46
+ sa.PrimaryKeyConstraint("id"),
47
+ )
48
+ op.execute(
49
+ "INSERT INTO plan_review (id, plan_id, rejection_date) "
50
+ "SELECT plan.id, plan.id, plan_rejection.date "
51
+ "FROM plan LEFT JOIN plan_rejection ON plan_rejection.plan_id = plan.id"
52
+ )
53
+ op.drop_table("plan_rejection")
@@ -191,8 +191,8 @@ class Plan(Base):
191
191
  )
192
192
  hidden_by_user: Mapped[bool] = mapped_column(default=False)
193
193
 
194
- review: Mapped["PlanReview | None"] = relationship(
195
- "PlanReview", back_populates="plan"
194
+ rejection: Mapped["PlanRejection | None"] = relationship(
195
+ "PlanRejection", back_populates="plan"
196
196
  )
197
197
  approval: Mapped["PlanApproval | None"] = relationship(
198
198
  "PlanApproval", back_populates="plan"
@@ -206,19 +206,19 @@ class PlanCooperation(Base):
206
206
  cooperation: Mapped[UUID] = mapped_column(Uuid, ForeignKey("cooperation.id"))
207
207
 
208
208
 
209
- class PlanReview(Base):
210
- __tablename__ = "plan_review"
209
+ class PlanRejection(Base):
210
+ __tablename__ = "plan_rejection"
211
211
 
212
212
  id: Mapped[UUID] = mapped_column(Uuid, primary_key=True, default=uuid4)
213
- rejection_date: Mapped[datetime | None] = mapped_column(TZDateTime)
214
213
  plan_id: Mapped[UUID] = mapped_column(
215
214
  Uuid, ForeignKey("plan.id", ondelete="CASCADE")
216
215
  )
216
+ date: Mapped[datetime] = mapped_column(TZDateTime)
217
217
 
218
- plan: Mapped["Plan"] = relationship("Plan", back_populates="review")
218
+ plan: Mapped["Plan"] = relationship("Plan", back_populates="rejection")
219
219
 
220
220
  def __repr__(self) -> str:
221
- return f"PlanReview(id={self.id!r}, plan_id={self.plan_id!r}, rejection_date={self.rejection_date!r})"
221
+ return f"PlanRejection(id={self.id!r}, plan_id={self.plan_id!r}, date={self.date!r})"
222
222
 
223
223
 
224
224
  class PlanApproval(Base):
@@ -114,16 +114,11 @@ class PlanQueryResult(SqlQueryResult[records.Plan]):
114
114
  )
115
115
 
116
116
  def ordered_by_rejection_date(self, ascending: bool = True) -> Self:
117
- review = aliased(models.PlanReview)
118
- ordering = (
119
- review.rejection_date.asc() if ascending else review.rejection_date.desc()
120
- )
121
- query = self._with_modified_query(
122
- lambda query: query.join(review, review.plan_id == models.Plan.id).order_by(
123
- ordering
124
- )
117
+ rejection = aliased(models.PlanRejection)
118
+ ordering = rejection.date.asc() if ascending else rejection.date.desc()
119
+ return self._with_modified_query(
120
+ lambda query: query.outerjoin(rejection).order_by(ordering)
125
121
  )
126
- return query
127
122
 
128
123
  def with_id_containing(self, query: str) -> Self:
129
124
  return self._with_modified_query(
@@ -143,11 +138,8 @@ class PlanQueryResult(SqlQueryResult[records.Plan]):
143
138
  )
144
139
 
145
140
  def that_are_rejected(self) -> Self:
146
- plan_review = aliased(models.PlanReview)
147
141
  return self._with_modified_query(
148
- lambda query: query.join(plan_review).filter(
149
- plan_review.rejection_date != None
150
- )
142
+ lambda query: query.filter(models.Plan.rejection != None)
151
143
  )
152
144
 
153
145
  def that_were_approved_before(self, timestamp: datetime) -> Self:
@@ -207,14 +199,11 @@ class PlanQueryResult(SqlQueryResult[records.Plan]):
207
199
  )
208
200
 
209
201
  def without_completed_review(self) -> Self:
210
- plan_review = aliased(models.PlanReview)
211
202
  return self._with_modified_query(
212
- lambda query: query.join(
213
- plan_review, plan_review.plan_id == models.Plan.id
214
- ).filter(
203
+ lambda query: query.filter(
215
204
  and_(
216
205
  models.Plan.approval == None,
217
- plan_review.rejection_date == None,
206
+ models.Plan.rejection == None,
218
207
  )
219
208
  )
220
209
  )
@@ -436,7 +425,6 @@ class PlanUpdate:
436
425
  query: Query
437
426
  db: Database
438
427
  plan_update_values: Dict[str, Any] = field(default_factory=dict)
439
- review_update_values: Dict[str, Any] = field(default_factory=dict)
440
428
  cooperation_update: SetCooperation | None = None
441
429
 
442
430
  @dataclass
@@ -459,19 +447,6 @@ class PlanUpdate:
459
447
  )
460
448
  result = self.db.session.execute(sql_statement)
461
449
  row_count = cast(CursorResult, result).rowcount
462
- if self.review_update_values:
463
- sql_statement = (
464
- update(models.PlanReview)
465
- .where(
466
- models.PlanReview.plan_id.in_(
467
- self.query.with_entities(models.Plan.id).scalar_subquery()
468
- )
469
- )
470
- .values(**self.review_update_values)
471
- .execution_options(synchronize_session="fetch")
472
- )
473
- result = self.db.session.execute(sql_statement)
474
- row_count = max(row_count, cast(CursorResult, result).rowcount)
475
450
  if self.cooperation_update:
476
451
  match self.cooperation_update:
477
452
  case self.SetCooperation(cooperation=None):
@@ -527,14 +502,6 @@ class PlanUpdate:
527
502
  ),
528
503
  )
529
504
 
530
- def set_rejection_date(self, rejection_date: Optional[datetime]) -> Self:
531
- return replace(
532
- self,
533
- review_update_values=dict(
534
- self.review_update_values, rejection_date=rejection_date
535
- ),
536
- )
537
-
538
505
  def hide(self) -> Self:
539
506
  return replace(
540
507
  self,
@@ -2803,9 +2770,7 @@ class DatabaseGatewayImpl:
2803
2770
  timeframe=duration_in_days,
2804
2771
  is_public_service=is_public_service,
2805
2772
  )
2806
- review = models.PlanReview(plan=plan, rejection_date=None)
2807
2773
  self.db.session.add(plan)
2808
- self.db.session.add(review)
2809
2774
  self.db.session.flush()
2810
2775
  return self.plan_from_orm(plan)
2811
2776
 
@@ -2828,7 +2793,7 @@ class DatabaseGatewayImpl:
2828
2793
  timeframe=int(plan.timeframe),
2829
2794
  is_public_service=plan.is_public_service,
2830
2795
  approval_date=plan.approval.date if plan.approval else None,
2831
- rejection_date=plan.review.rejection_date if plan.review else None,
2796
+ rejection_date=plan.rejection.date if plan.rejection else None,
2832
2797
  requested_cooperation=(
2833
2798
  plan.requested_cooperation if plan.requested_cooperation else None
2834
2799
  ),
@@ -3361,6 +3326,33 @@ class DatabaseGatewayImpl:
3361
3326
  mapper=self.plan_approval_from_orm,
3362
3327
  )
3363
3328
 
3329
+ def create_plan_rejection(
3330
+ self,
3331
+ plan_id: UUID,
3332
+ date: datetime,
3333
+ ) -> records.PlanRejection:
3334
+ rejection_orm = models.PlanRejection(
3335
+ id=uuid4(),
3336
+ plan_id=plan_id,
3337
+ date=date,
3338
+ )
3339
+ plan_orm = self.db.session.query(models.Plan).filter_by(id=plan_id).first()
3340
+ assert plan_orm
3341
+ plan_orm.rejection = rejection_orm
3342
+ self.db.session.add(rejection_orm)
3343
+ self.db.session.flush()
3344
+ return self.plan_rejection_from_orm(rejection_orm)
3345
+
3346
+ @classmethod
3347
+ def plan_rejection_from_orm(
3348
+ cls, orm: models.PlanRejection
3349
+ ) -> records.PlanRejection:
3350
+ return records.PlanRejection(
3351
+ id=orm.id,
3352
+ plan_id=orm.plan_id,
3353
+ date=orm.date,
3354
+ )
3355
+
3364
3356
  @classmethod
3365
3357
  def basic_service_from_orm(cls, orm: models.BasicService) -> records.BasicService:
3366
3358
  return records.BasicService(
@@ -0,0 +1,55 @@
1
+ from flask import render_template
2
+
3
+ from workers_control.core.interactors.get_accountant_dashboard import (
4
+ GetAccountantDashboardInteractor,
5
+ )
6
+ from workers_control.core.interactors.list_plans_with_pending_review import (
7
+ ListPlansWithPendingReviewInteractor,
8
+ )
9
+ from workers_control.flask.class_based_view import as_flask_view
10
+ from workers_control.flask.flask_session import FlaskSession
11
+ from workers_control.flask.types import Response
12
+ from workers_control.flask.views.review_plan_view import ReviewPlanView
13
+ from workers_control.web.www.presenters.get_accountant_dashboard_presenter import (
14
+ GetAccountantDashboardPresenter,
15
+ )
16
+ from workers_control.web.www.presenters.list_plans_with_pending_review_presenter import (
17
+ ListPlansWithPendingReviewPresenter,
18
+ )
19
+
20
+ from .blueprint import AccountantRoute
21
+
22
+
23
+ @AccountantRoute("/accountant/dashboard")
24
+ def dashboard(
25
+ flask_session: FlaskSession,
26
+ interactor: GetAccountantDashboardInteractor,
27
+ presenter: GetAccountantDashboardPresenter,
28
+ ) -> Response:
29
+ current_user = flask_session.get_current_user()
30
+ assert current_user
31
+ response = interactor.get_dashboard(current_user)
32
+ view_model = presenter.create_dashboard_view_model(response)
33
+ return render_template(
34
+ "accountant/dashboard.html",
35
+ view_model=view_model,
36
+ )
37
+
38
+
39
+ @AccountantRoute("/accountant/plans/unreviewed")
40
+ def list_plans_with_pending_review(
41
+ interactor: ListPlansWithPendingReviewInteractor,
42
+ presenter: ListPlansWithPendingReviewPresenter,
43
+ ) -> Response:
44
+ response = interactor.list_plans_with_pending_review(request=interactor.Request())
45
+ view_model = presenter.list_plans_with_pending_review(response)
46
+ return render_template(
47
+ "accountant/plans-to-review-list.html",
48
+ view_model=view_model,
49
+ navbar_items=presenter.create_navbar_items(),
50
+ )
51
+
52
+
53
+ @AccountantRoute("/accountant/plans/<uuid:plan_id>/review", methods=["GET", "POST"])
54
+ @as_flask_view()
55
+ class review_plan(ReviewPlanView): ...
@@ -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 (
@@ -86,6 +87,7 @@ def company_summary(
86
87
  return render_template(
87
88
  "user/company_summary.html",
88
89
  view_model=view_model,
90
+ navbar_items=presenter.create_navbar_items(),
89
91
  )
90
92
  else:
91
93
  return http_404()
@@ -181,3 +183,8 @@ class show_payout_factor_details(ShowPayoutFactorDetailsView): ...
181
183
  @AuthenticatedUserRoute("/basic_service/<uuid:basic_service_id>")
182
184
  @as_flask_view()
183
185
  class show_basic_service(ShowBasicServiceView): ...
186
+
187
+
188
+ @AuthenticatedUserRoute("/plan_details/<uuid:plan_id>")
189
+ @as_flask_view()
190
+ class plan_details(GetPlanDetailsView): ...
@@ -1,7 +1,30 @@
1
- function expandMenu() {
2
- var element = document.getElementById("navbarOnTop");
3
- element.classList.toggle("is-active");
4
- }
1
+ // Toggle the mobile navbar ("burger") menu, keep aria-expanded in sync, and
2
+ // close it again when clicking outside the menu or following a navbar link.
3
+ document.addEventListener('DOMContentLoaded', () => {
4
+ const burgers = Array.prototype.slice.call(
5
+ document.querySelectorAll('.navbar-burger'), 0);
6
+
7
+ function closeMenus() {
8
+ burgers.forEach((burger) => {
9
+ const menu = document.getElementById(burger.dataset.target);
10
+ burger.classList.remove('is-active');
11
+ if (menu) menu.classList.remove('is-active');
12
+ burger.setAttribute('aria-expanded', 'false');
13
+ });
14
+ }
15
+
16
+ burgers.forEach((burger) => {
17
+ burger.addEventListener('click', (event) => {
18
+ event.stopPropagation();
19
+ const menu = document.getElementById(burger.dataset.target);
20
+ const isActive = burger.classList.toggle('is-active');
21
+ if (menu) menu.classList.toggle('is-active', isActive);
22
+ burger.setAttribute('aria-expanded', isActive ? 'true' : 'false');
23
+ });
24
+ });
25
+
26
+ document.addEventListener('click', closeMenus);
27
+ });
5
28
 
6
29
  // Detect browser timezone and store in cookie for server-side use
7
30
  (function() {