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.
- {workers_control-0.2.2/src/workers_control.egg-info → workers_control-0.2.4}/PKG-INFO +6 -6
- {workers_control-0.2.2 → workers_control-0.2.4}/pyproject.toml +7 -7
- 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
- workers_control-0.2.4/src/workers_control/core/interactors/get_plan_for_review.py +26 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/reject_plan.py +1 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/records.py +7 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/repositories.py +6 -5
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/480a749375de_drop_transaction_table.py +4 -0
- workers_control-0.2.4/src/workers_control/db/migrations/versions/f4a9c2e1b6d3_replace_plan_review_with_plan_rejection.py +53 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/models.py +7 -7
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/repositories.py +35 -43
- workers_control-0.2.4/src/workers_control/flask/routes/accountant/routes.py +55 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/routes.py +8 -8
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/routes.py +0 -8
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/routes.py +7 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.js +27 -4
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/plans-to-review-list.html +5 -13
- workers_control-0.2.4/src/workers_control/flask/templates/accountant/review_plan.html +41 -0
- workers_control-0.2.4/src/workers_control/flask/templates/base.html +65 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_cooperation.html +2 -2
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/invite_worker_to_company.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_registered_hours_worked.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_consumptions.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_cooperations.html +22 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/my_plans.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/remove_worker_from_company.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_cooperation.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/review_registered_consumptions.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/navbar.html +1 -1
- workers_control-0.2.4/src/workers_control/flask/templates/macros/navigation.html +63 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/basic_services.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumption_details.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/consumptions.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/create_basic_service.html +2 -2
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/my_account.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_accounts.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_summary.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/coop_summary.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_all_cooperations.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_transfers.html +2 -1
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_companies.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/query_offers.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/statistics.html +2 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/de/LC_MESSAGES/messages.po +331 -308
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/en/LC_MESSAGES/messages.po +327 -305
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/es/LC_MESSAGES/messages.po +331 -308
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translations/messages.pot +318 -305
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/url_index.py +7 -15
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/coop_summary_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_basic_service_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_cooperation_view.py +5 -1
- workers_control-0.2.4/src/workers_control/flask/views/end_plan_cooperation_view.py +39 -0
- 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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_private_consumption_details.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_statistics_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/invite_worker_to_company.py +2 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_all_cooperations_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_basic_services_of_worker_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_registered_hours_worked_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_transfers.py +7 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_companies.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_company_consumptions_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_offers.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/query_private_consumptions.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/remove_worker_from_company_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_cooperation_view.py +7 -1
- workers_control-0.2.4/src/workers_control/flask/views/review_plan_view.py +75 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/review_registered_consumptions_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_company_accounts_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_member_account_details_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_cooperations_view.py +5 -1
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_my_plans_view.py +1 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/url_index.py +4 -27
- workers_control-0.2.4/src/workers_control/web/www/controllers/review_plan_controller.py +31 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/company_consumptions_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_basic_service_presenter.py +12 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_cooperation_presenter.py +12 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/end_cooperation_presenter.py +1 -18
- workers_control-0.2.4/src/workers_control/web/www/presenters/end_plan_cooperation_presenter.py +29 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_summary_presenter.py +7 -4
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_coop_summary_presenter.py +8 -3
- 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
- workers_control-0.2.4/src/workers_control/web/www/presenters/get_plan_for_review_presenter.py +42 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_statistics_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/invite_worker_to_company_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_all_cooperations_presenter.py +6 -0
- {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
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_registered_hours_worked_presenter.py +10 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_transfers_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumption_details_presenter.py +13 -2
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/private_consumptions_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/productive_consumption_details_presenter.py +1 -2
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_companies_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/query_offers_presenter.py +6 -3
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/remove_worker_from_company_presenter.py +10 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_cooperation_presenter.py +6 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/review_registered_consumptions_presenter.py +9 -4
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_company_accounts_presenter.py +6 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_member_account_details_presenter.py +4 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_cooperations_presenter.py +13 -10
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_my_plans_presenter.py +17 -6
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_payout_factor_details_presenter.py +1 -6
- {workers_control-0.2.2 → workers_control-0.2.4/src/workers_control.egg-info}/PKG-INFO +6 -6
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/SOURCES.txt +12 -14
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/requires.txt +3 -3
- workers_control-0.2.2/src/workers_control/core/interactors/get_plan_details.py +0 -26
- workers_control-0.2.2/src/workers_control/flask/routes/accountant/routes.py +0 -116
- workers_control-0.2.2/src/workers_control/flask/templates/base.html +0 -54
- workers_control-0.2.2/src/workers_control/flask/templates/company/plan_details.html +0 -56
- workers_control-0.2.2/src/workers_control/flask/templates/macros/accountant_navigation.html +0 -43
- workers_control-0.2.2/src/workers_control/flask/templates/macros/anonymous_navigation.html +0 -45
- workers_control-0.2.2/src/workers_control/flask/templates/macros/company_navigation.html +0 -47
- workers_control-0.2.2/src/workers_control/flask/templates/macros/member_navigation.html +0 -50
- workers_control-0.2.2/src/workers_control/flask/templates/member/plan_details.html +0 -25
- workers_control-0.2.2/src/workers_control/flask/views/get_plan_details_member_view.py +0 -32
- workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_accountant_presenter.py +0 -31
- workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_company_presenter.py +0 -72
- workers_control-0.2.2/src/workers_control/web/www/presenters/get_plan_details_member_presenter.py +0 -35
- {workers_control-0.2.2 → workers_control-0.2.4}/LICENSE +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/MANIFEST.in +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/README.rst +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/build_support/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/build_support/babel.cfg +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/build_support/backend.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/build_support/project.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/build_support/translations.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/setup.cfg +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/accountant_notifications.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/anonymization.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/control_thresholds.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/datetime_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/decimal.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/email.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/email_notifications.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/injector.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/accept_coordination_transfer.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/answer_company_work_invite.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/approve_plan.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/cancel_cooperation_solicitation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_email_address.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_name.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/change_user_password.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/confirm_member.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_draft_from_plan.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/create_plan_draft.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/deactivate_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/delete_draft.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/deny_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/edit_draft.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/end_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/file_plan_with_accounting.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_accountant_dashboard.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_dashboard.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_company_summary.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coop_summary.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_coordination_transfer_request_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_draft_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_member_dashboard.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_private_consumption_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_productive_consumption_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_statistics.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/get_user_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/hide_plan.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/invite_worker_to_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_active_plans_of_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_all_cooperations.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_available_languages.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_basic_services_of_worker.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_coordinations_of_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_my_cooperating_plans.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_pending_work_invites.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_plans_with_pending_review.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_registered_hours_worked.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_transfers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/list_workers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_accountant.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/log_in_member.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/preview_private_consumption.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_companies.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_company_consumptions.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_offers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/query_private_consumptions.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_accountant.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_hours_worked.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_member.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_private_consumption_of_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/register_productive_consumption_of_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/remove_worker_from_company.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_cooperation.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_coordination_transfer.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_email_address_change.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/request_user_password_reset.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_confirmation_mail.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/resend_work_invite.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/review_registered_consumptions.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/revoke_plan_filing.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_private_consumption_of_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/select_productive_consumption_of_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/send_accountant_registration_token.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_a_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_basic_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_accounts.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_cooperations.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_company_work_invite_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_member_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_my_plans.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_p_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_payout_factor_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_prd_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_psf_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/show_r_account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/password_hasher.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/account_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/compensation_transfers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/payout_factor.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/price_calculator.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/services/psf_balance.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/transfers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/db.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/alembic.ini +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/env.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/script.py.mako +0 -0
- {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
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/4fd90069eb82_remove_social_accounting_account.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/68ac7ccf6086_create_table_emailoutbox.py +0 -0
- {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
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/b40539bf0293_add_basic_service_table.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/db/migrations/versions/c9f2e1a4b8d7_add_outbox_status_columns.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/interface.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/smtp_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/email_sending_worker/worker.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/babel.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/class_based_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/commands.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/checks.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/loader.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/options.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/config/production_defaults.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/context_processors.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/control_thresholds.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/database.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/datetime.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/dependency_injection.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/email_configuration.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/extensions.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/filters.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_colors.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_request.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/flask_session.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/forms.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/language_repository.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/logging_config.json +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_sender/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/interface.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/mail_service/mail_storage_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/notifications.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/password_hasher.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/payout_factor.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/plotter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/profiling.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/accountant/blueprint.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/auth/routes.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/blueprint.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/healthcheck/blueprint.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/blueprint.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/plots/routes.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/blueprint.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/bulma.css +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/colors.css +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/favicon.ico +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.css +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/static/main.module.js +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/dashboard.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/accountant/notification-about-new-plan.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/accountant_invitation.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/activate.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/help.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_accountant.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_company.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/login_member.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/password_reset_confirmation_email.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/request_password_reset.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_email.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/reset_password_invalid.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_accountant.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_company.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/signup_member.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/start.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_company.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/auth/unconfirmed_member.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/consumption_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/create_draft.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/dashboard.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/draft_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/list_pending_work_invites.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_hours_worked.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/register_productive_consumption.html +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/rejected_plan_notification.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/request_coordination_transfer.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/company/show_coordination_transfer_request.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/at.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/basket-shopping.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/book.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/calendar.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-line.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/chart-pie.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/check.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/copy.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/credit-card.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/edit.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/envelope.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exchange-alt.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/exclamation-triangle.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye-slashed.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/eye.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file-circle-plus.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/file.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hands-helping.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/hourglass.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/industry.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/info-circle.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/key.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/list.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/oil-can.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/redo.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/square-arrow-up-right.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/times.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/trash.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/user.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/icons/users.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/company_summary.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/copy_toggle.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/draft_form.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/form_field_error.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/language_selection.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/pagination.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/plan_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/show_notifications.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/tooltips.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/macros/transfers.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/dashboard.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/notification-about-work-invitation.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/register_private_consumption.html +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/member/show_company_work_invite_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/account_psf.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/change_user_name.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_a.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_p.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_prd.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/company_account_r.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/confirm_email_address_change.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/http_error.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/list_coordinations_of_cooperation.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/name_change_confirmation.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_address_change.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_notification.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/request_email_change_warning.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_basic_service.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/templates/user/show_payout_factor_details.html +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/text_renderer.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/token.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/translator.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/types.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/accept_cooperation_request_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/accountant_invitation_email_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/cancel_cooperation_request_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/change_email_address_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/change_user_name_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/company_dashboard_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/company_work_invite_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_from_plan_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/create_draft_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/deactivate_basic_service_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/delete_draft_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/deny_cooperation_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/draft_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/end_cooperation_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/file_plan_with_accounting_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/get_productive_consumption_details.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/healthcheck_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/hide_plan_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/http_error_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_coordinators_of_cooperation_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/list_pending_work_invites_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_accountant_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_company_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/log_in_member_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/member_dashboard_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_hours_worked_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_private_consumption.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/register_productive_consumption.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_coordination_transfer_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_email_address_change_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/request_password_reset_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/resend_confirmation_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/reset_password_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/revoke_plan_filing_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_a_account_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_basic_service_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_coordination_transfer_request_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_p_account_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_payout_factor_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_prd_account_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_psf_account_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/show_r_account_details_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_accountant_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_company_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/views/signup_member_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/wsgi.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/colors.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/accountant_invitation_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/company_notifier.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/cooperation_request_email_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_change_confirmation_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_change_warning_view.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/email_sender.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/invite_worker_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/name_change_confirmation_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/notify_accountant_about_new_plan_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/registration_email_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/request_coordination_transfer_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/email/reset_password_email_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/formatters/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/formatters/datetime_formatter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/fields.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/forms/formfield_parsers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/json.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/language_service.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/malformed_input_data.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/notification.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/pagination.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/request.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/session.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/text_renderer.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/token.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/translator.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/authentication.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/accept_coordination_transfer_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/answer_company_work_invite_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/approve_plan_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_email_address_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/change_user_name_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_company_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/confirm_member_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_basic_service_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/create_draft_from_plan_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/deactivate_basic_service_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/delete_draft_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/draft_form_validator.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/edit_draft_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/end_cooperation_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/file_plan_with_accounting_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_private_consumption_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/get_productive_consumption_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/invite_worker_to_company_controller.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_pending_work_invites_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_registered_hours_worked_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_transfers_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/list_workers_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/log_in_accountant_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_companies_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_offers_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/query_private_consumptions_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_accountant_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_company_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_hours_worked_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_member_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_private_consumption_form_validator.py +0 -0
- {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
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/register_productive_consumption_controller.py +0 -0
- {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
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reject_plan_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/remove_worker_from_company_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_cooperation_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_coordination_transfer_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_email_address_change_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/request_password_reset_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/resend_work_invite_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/reset_password_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/review_registered_consumptions_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/revoke_plan_filing_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_private_consumption_controller.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/select_productive_consumption_controller.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_a_account_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_basic_service_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_company_accounts_controller.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_p_account_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_prd_account_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/show_r_account_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/controllers/user_account_details_controller.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/navbar.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/__init__.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_cooperation_request_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/accept_coordination_transfer_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/answer_company_work_invite_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/approve_plan_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/cancel_cooperation_request_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_email_address_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/change_user_name_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_from_plan_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/create_draft_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deactivate_basic_service_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/delete_draft_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/deny_cooperation_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/edit_draft_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/file_plan_with_accounting_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_accountant_dashboard_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_company_dashboard_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_draft_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/get_member_dashboard_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/hide_plan_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_available_languages_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_coordinations_of_cooperation_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_pending_work_invites_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_plans_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/list_workers_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_accountant_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_company_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/log_in_member_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_accountant_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_company_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_hours_worked_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_member_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_private_consumption_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/register_productive_consumption_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reject_plan_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_coordination_transfer_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_email_address_change_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/request_password_reset_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/resend_work_invite_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/reset_password_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/revoke_plan_filing_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_private_consumption_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/select_productive_consumption_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_a_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_basic_service_presenter.py +0 -0
- {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
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_p_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_prd_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_psf_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/show_r_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/transfers.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/presenters/user_account_details_presenter.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/web/www/response.py +0 -0
- {workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control.egg-info/dependency_links.txt +0 -0
- {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.
|
|
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
|
-
|
|
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
|
|
17
|
-
Requires-Dist: email-validator
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
23
|
-
"email-validator
|
|
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.
|
|
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 = ['
|
|
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
|
|
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
|
|
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
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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)
|
{workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/core/interactors/reject_plan.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
195
|
-
"
|
|
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
|
|
210
|
-
__tablename__ = "
|
|
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="
|
|
218
|
+
plan: Mapped["Plan"] = relationship("Plan", back_populates="rejection")
|
|
219
219
|
|
|
220
220
|
def __repr__(self) -> str:
|
|
221
|
-
return f"
|
|
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
|
-
|
|
118
|
-
ordering = (
|
|
119
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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): ...
|
{workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/company/routes.py
RENAMED
|
@@ -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): ...
|
{workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/member/routes.py
RENAMED
|
@@ -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): ...
|
{workers_control-0.2.2 → workers_control-0.2.4}/src/workers_control/flask/routes/user/routes.py
RENAMED
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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() {
|