wbhuman_resources 1.58.4__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. wbhuman_resources/__init__.py +1 -0
  2. wbhuman_resources/admin/__init__.py +5 -0
  3. wbhuman_resources/admin/absence.py +113 -0
  4. wbhuman_resources/admin/calendars.py +37 -0
  5. wbhuman_resources/admin/employee.py +109 -0
  6. wbhuman_resources/admin/kpi.py +21 -0
  7. wbhuman_resources/admin/review.py +157 -0
  8. wbhuman_resources/apps.py +23 -0
  9. wbhuman_resources/dynamic_preferences_registry.py +119 -0
  10. wbhuman_resources/factories/__init__.py +38 -0
  11. wbhuman_resources/factories/absence.py +109 -0
  12. wbhuman_resources/factories/calendars.py +60 -0
  13. wbhuman_resources/factories/employee.py +80 -0
  14. wbhuman_resources/factories/kpi.py +155 -0
  15. wbhuman_resources/filters/__init__.py +20 -0
  16. wbhuman_resources/filters/absence.py +109 -0
  17. wbhuman_resources/filters/absence_graphs.py +85 -0
  18. wbhuman_resources/filters/calendars.py +28 -0
  19. wbhuman_resources/filters/employee.py +81 -0
  20. wbhuman_resources/filters/kpi.py +35 -0
  21. wbhuman_resources/filters/review.py +134 -0
  22. wbhuman_resources/filters/signals.py +27 -0
  23. wbhuman_resources/locale/de/LC_MESSAGES/django.mo +0 -0
  24. wbhuman_resources/locale/de/LC_MESSAGES/django.po +2207 -0
  25. wbhuman_resources/locale/de/LC_MESSAGES/django.po.translated +2456 -0
  26. wbhuman_resources/locale/en/LC_MESSAGES/django.mo +0 -0
  27. wbhuman_resources/locale/en/LC_MESSAGES/django.po +2091 -0
  28. wbhuman_resources/locale/fr/LC_MESSAGES/django.mo +0 -0
  29. wbhuman_resources/locale/fr/LC_MESSAGES/django.po +2093 -0
  30. wbhuman_resources/management/__init__.py +23 -0
  31. wbhuman_resources/migrations/0001_initial_squashed_squashed_0015_alter_absencerequest_calendaritem_ptr_and_more.py +949 -0
  32. wbhuman_resources/migrations/0016_alter_employeehumanresource_options.py +20 -0
  33. wbhuman_resources/migrations/0017_absencerequest_crossborder_country_and_more.py +55 -0
  34. wbhuman_resources/migrations/0018_remove_position_group_position_groups.py +32 -0
  35. wbhuman_resources/migrations/0019_alter_absencerequest_options_alter_kpi_options_and_more.py +44 -0
  36. wbhuman_resources/migrations/0020_alter_employeeyearbalance_year_alter_review_year.py +27 -0
  37. wbhuman_resources/migrations/0021_alter_position_color.py +18 -0
  38. wbhuman_resources/migrations/0022_remove_review_editable_mode.py +64 -0
  39. wbhuman_resources/migrations/__init__.py +0 -0
  40. wbhuman_resources/models/__init__.py +23 -0
  41. wbhuman_resources/models/absence.py +903 -0
  42. wbhuman_resources/models/calendars.py +370 -0
  43. wbhuman_resources/models/employee.py +1241 -0
  44. wbhuman_resources/models/kpi.py +199 -0
  45. wbhuman_resources/models/preferences.py +40 -0
  46. wbhuman_resources/models/review.py +982 -0
  47. wbhuman_resources/permissions/__init__.py +0 -0
  48. wbhuman_resources/permissions/backend.py +26 -0
  49. wbhuman_resources/serializers/__init__.py +49 -0
  50. wbhuman_resources/serializers/absence.py +308 -0
  51. wbhuman_resources/serializers/calendars.py +73 -0
  52. wbhuman_resources/serializers/employee.py +267 -0
  53. wbhuman_resources/serializers/kpi.py +80 -0
  54. wbhuman_resources/serializers/review.py +415 -0
  55. wbhuman_resources/signals.py +4 -0
  56. wbhuman_resources/tasks.py +195 -0
  57. wbhuman_resources/templates/review/review_report.html +322 -0
  58. wbhuman_resources/tests/__init__.py +1 -0
  59. wbhuman_resources/tests/conftest.py +96 -0
  60. wbhuman_resources/tests/models/__init__.py +0 -0
  61. wbhuman_resources/tests/models/test_absences.py +478 -0
  62. wbhuman_resources/tests/models/test_calendars.py +209 -0
  63. wbhuman_resources/tests/models/test_employees.py +502 -0
  64. wbhuman_resources/tests/models/test_review.py +103 -0
  65. wbhuman_resources/tests/models/test_utils.py +110 -0
  66. wbhuman_resources/tests/signals.py +108 -0
  67. wbhuman_resources/tests/test_permission.py +64 -0
  68. wbhuman_resources/tests/test_tasks.py +74 -0
  69. wbhuman_resources/urls.py +221 -0
  70. wbhuman_resources/utils.py +43 -0
  71. wbhuman_resources/viewsets/__init__.py +61 -0
  72. wbhuman_resources/viewsets/absence.py +312 -0
  73. wbhuman_resources/viewsets/absence_charts.py +328 -0
  74. wbhuman_resources/viewsets/buttons/__init__.py +7 -0
  75. wbhuman_resources/viewsets/buttons/absence.py +32 -0
  76. wbhuman_resources/viewsets/buttons/employee.py +44 -0
  77. wbhuman_resources/viewsets/buttons/kpis.py +16 -0
  78. wbhuman_resources/viewsets/buttons/review.py +195 -0
  79. wbhuman_resources/viewsets/calendars.py +103 -0
  80. wbhuman_resources/viewsets/display/__init__.py +39 -0
  81. wbhuman_resources/viewsets/display/absence.py +334 -0
  82. wbhuman_resources/viewsets/display/calendars.py +83 -0
  83. wbhuman_resources/viewsets/display/employee.py +254 -0
  84. wbhuman_resources/viewsets/display/kpis.py +92 -0
  85. wbhuman_resources/viewsets/display/review.py +429 -0
  86. wbhuman_resources/viewsets/employee.py +210 -0
  87. wbhuman_resources/viewsets/endpoints/__init__.py +42 -0
  88. wbhuman_resources/viewsets/endpoints/absence.py +57 -0
  89. wbhuman_resources/viewsets/endpoints/calendars.py +18 -0
  90. wbhuman_resources/viewsets/endpoints/employee.py +51 -0
  91. wbhuman_resources/viewsets/endpoints/kpis.py +53 -0
  92. wbhuman_resources/viewsets/endpoints/review.py +191 -0
  93. wbhuman_resources/viewsets/kpi.py +280 -0
  94. wbhuman_resources/viewsets/menu/__init__.py +22 -0
  95. wbhuman_resources/viewsets/menu/absence.py +50 -0
  96. wbhuman_resources/viewsets/menu/administration.py +15 -0
  97. wbhuman_resources/viewsets/menu/calendars.py +33 -0
  98. wbhuman_resources/viewsets/menu/employee.py +44 -0
  99. wbhuman_resources/viewsets/menu/kpis.py +18 -0
  100. wbhuman_resources/viewsets/menu/review.py +97 -0
  101. wbhuman_resources/viewsets/mixins.py +14 -0
  102. wbhuman_resources/viewsets/review.py +837 -0
  103. wbhuman_resources/viewsets/titles/__init__.py +18 -0
  104. wbhuman_resources/viewsets/titles/absence.py +30 -0
  105. wbhuman_resources/viewsets/titles/employee.py +18 -0
  106. wbhuman_resources/viewsets/titles/kpis.py +15 -0
  107. wbhuman_resources/viewsets/titles/review.py +62 -0
  108. wbhuman_resources/viewsets/utils.py +28 -0
  109. wbhuman_resources-1.58.4.dist-info/METADATA +8 -0
  110. wbhuman_resources-1.58.4.dist-info/RECORD +111 -0
  111. wbhuman_resources-1.58.4.dist-info/WHEEL +5 -0
@@ -0,0 +1,18 @@
1
+ from .absence import (
2
+ AbsenceRequestEmployeeBalanceTitleConfig,
3
+ AbsenceRequestPlannerTitleConfig,
4
+ AbsenceTablePandasTitleConfig,
5
+ AbsenceTypeCountEmployeeTitleConfig,
6
+ )
7
+ from .employee import EmployeeBalanceTitleConfig, EmployeeTitleConfig
8
+ from .kpis import EvaluationGraphTitleConfig, KPIEvaluationPandasTitleConfig
9
+ from .review import (
10
+ ReviewAnswerReviewPandasTitleConfig,
11
+ ReviewAnswerReviewTitleConfig,
12
+ ReviewProgressPandasTitleConfig,
13
+ ReviewProgressReviewPandasTitleConfig,
14
+ ReviewQuestionReviewQuestionCategoryTitleConfig,
15
+ ReviewQuestionReviewTitleConfig,
16
+ ReviewReviewGroupTitleConfig,
17
+ ReviewTemplateTitleConfig,
18
+ )
@@ -0,0 +1,30 @@
1
+ from django.utils.translation import gettext as _
2
+ from wbcore.metadata.configs.titles import TitleViewConfig
3
+
4
+ from wbhuman_resources.models import EmployeeHumanResource
5
+
6
+
7
+ class AbsenceRequestPlannerTitleConfig(TitleViewConfig):
8
+ def get_list_title(self):
9
+ return _("Absence Graph")
10
+
11
+
12
+ class AbsenceTypeCountEmployeeTitleConfig(TitleViewConfig):
13
+ def get_list_title(self):
14
+ employee = EmployeeHumanResource.objects.get(id=self.view.kwargs["employee_id"])
15
+ return _("Absence for {employee}").format(employee=str(employee))
16
+
17
+
18
+ class AbsenceRequestEmployeeBalanceTitleConfig(TitleViewConfig):
19
+ def get_list_title(self):
20
+ employee = EmployeeHumanResource.objects.get(id=self.view.kwargs["employee_id"])
21
+ return _("Absence Requests for {employee}").format(employee=str(employee))
22
+
23
+ def get_create_title(self):
24
+ employee = EmployeeHumanResource.objects.get(id=self.view.kwargs["employee_id"])
25
+ return _("Absence Request for {employee}").format(employee=str(employee))
26
+
27
+
28
+ class AbsenceTablePandasTitleConfig(TitleViewConfig):
29
+ def get_list_title(self):
30
+ return _("Weekly Presence Table")
@@ -0,0 +1,18 @@
1
+ from django.utils.translation import gettext as _
2
+ from wbcore.metadata.configs.titles import TitleViewConfig
3
+
4
+
5
+ class EmployeeBalanceTitleConfig(TitleViewConfig):
6
+ def get_instance_title(self):
7
+ return _("Balance & Usage: {{_profile.first_name}} {{_profile.last_name}}")
8
+
9
+ def get_list_title(self):
10
+ return _("Balance & Usage")
11
+
12
+
13
+ class EmployeeTitleConfig(TitleViewConfig):
14
+ def get_instance_title(self):
15
+ return _("Employee: {{_profile.first_name}} {{_profile.last_name}}")
16
+
17
+ def get_list_title(self):
18
+ return _("Employees")
@@ -0,0 +1,15 @@
1
+ from django.utils.translation import gettext as _
2
+ from wbcore.metadata.configs.titles import TitleViewConfig
3
+
4
+ from wbhuman_resources.models import KPI
5
+
6
+
7
+ class EvaluationGraphTitleConfig(TitleViewConfig):
8
+ def get_list_title(self):
9
+ kpi = KPI.objects.get(id=self.view.kwargs["kpi_id"])
10
+ return _("Evaluations Graph of KPI: {kpi}").format(kpi=str(kpi))
11
+
12
+
13
+ class KPIEvaluationPandasTitleConfig(TitleViewConfig):
14
+ def get_list_title(self):
15
+ return _("KPI Evaluations")
@@ -0,0 +1,62 @@
1
+ from django.utils.translation import gettext as _
2
+ from wbcore.metadata.configs.titles import TitleViewConfig
3
+
4
+ from wbhuman_resources.models import Review, ReviewGroup, ReviewQuestionCategory
5
+
6
+
7
+ class ReviewTemplateTitleConfig(TitleViewConfig):
8
+ def get_list_title(self):
9
+ return _("Review Templates")
10
+
11
+
12
+ class ReviewReviewGroupTitleConfig(TitleViewConfig):
13
+ def get_list_title(self):
14
+ if review_group_id := self.view.kwargs.get("review_group_id"):
15
+ review_group = ReviewGroup.objects.get(id=review_group_id)
16
+ return _("Review Group: {review_group}").format(review_group=review_group.name)
17
+ return super().get_list_title()
18
+
19
+
20
+ class ReviewQuestionReviewQuestionCategoryTitleConfig(TitleViewConfig):
21
+ def get_list_title(self):
22
+ if category_id := self.view.kwargs.get("category_id"):
23
+ category = ReviewQuestionCategory.objects.get(id=category_id)
24
+ return _("Review Question Category: {category}").format(category=category.name)
25
+ return super().get_list_title()
26
+
27
+
28
+ class ReviewQuestionReviewTitleConfig(TitleViewConfig):
29
+ def get_list_title(self):
30
+ if review_id := self.view.kwargs.get("review_id"):
31
+ review = Review.objects.get(id=review_id)
32
+ return _("Review: {review}").format(review=str(review))
33
+ return super().get_list_title()
34
+
35
+
36
+ class ReviewAnswerReviewTitleConfig(TitleViewConfig):
37
+ def get_list_title(self):
38
+ if review_id := self.view.kwargs.get("review_id"):
39
+ review = Review.objects.get(id=review_id)
40
+ return _("Review: {review}").format(review=str(review))
41
+ return super().get_list_title()
42
+
43
+
44
+ class ReviewProgressReviewPandasTitleConfig(TitleViewConfig):
45
+ def get_list_title(self):
46
+ if review_id := self.view.kwargs.get("review_id"):
47
+ review = Review.objects.get(id=review_id)
48
+ return _("Progress of the review : {review}").format(review=str(review))
49
+ return _("Progress of the review")
50
+
51
+
52
+ class ReviewAnswerReviewPandasTitleConfig(TitleViewConfig):
53
+ def get_list_title(self):
54
+ if review_id := self.view.kwargs.get("review_id"):
55
+ review = Review.objects.get(id=review_id)
56
+ return _("Evaluation of the review : {review}").format(review=str(review))
57
+ return _("Evaluation of the review")
58
+
59
+
60
+ class ReviewProgressPandasTitleConfig(TitleViewConfig):
61
+ def get_list_title(self):
62
+ return _("Progress of Reviews")
@@ -0,0 +1,28 @@
1
+ from datetime import date, timedelta
2
+ from typing import Tuple
3
+
4
+ import pandas as pd
5
+
6
+
7
+ def current_week_range(val_date: date = None) -> Tuple[date, date]:
8
+ if not val_date:
9
+ val_date = date.today()
10
+ return [val_date - timedelta(days=val_date.weekday()), val_date + timedelta(days=6 - val_date.weekday())]
11
+
12
+
13
+ def current_day_range(val_date: date = None) -> Tuple[date, date]:
14
+ if not val_date:
15
+ val_date = date.today()
16
+ return [val_date, val_date + timedelta(days=1)]
17
+
18
+
19
+ def current_month_range(val_date: date = None) -> Tuple[date, date]:
20
+ if not val_date:
21
+ val_date = date.today()
22
+ return [(val_date - pd.tseries.offsets.MonthEnd(1)).date(), (val_date + pd.tseries.offsets.MonthEnd(0)).date()]
23
+
24
+
25
+ def current_year_range(val_date: date = None) -> Tuple[date, date]:
26
+ if not val_date:
27
+ val_date = date.today()
28
+ return [(val_date - pd.tseries.offsets.YearBegin(1)).date(), (val_date + pd.tseries.offsets.YearEnd(0)).date()]
@@ -0,0 +1,8 @@
1
+ Metadata-Version: 2.4
2
+ Name: wbhuman_resources
3
+ Version: 1.58.4
4
+ Summary: A workbench module for managing human resources.
5
+ Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
+ Requires-Dist: wbcore
7
+ Requires-Dist: workalendar==17.*
8
+ Requires-Dist: xlsxwriter==3.2.5
@@ -0,0 +1,111 @@
1
+ wbhuman_resources/__init__.py,sha256=J-j-u0itpEFT6irdmWmixQqYMadNl1X91TxUmoiLHMI,22
2
+ wbhuman_resources/apps.py,sha256=UPXBSjg_i7Zo00IPxMuxV7iYEsY1GWIu217R_ZqEWR8,675
3
+ wbhuman_resources/dynamic_preferences_registry.py,sha256=Piydi7FVWyzuQK6BDGEVmoP2CyCwqOEJdxgiErsNo4w,4107
4
+ wbhuman_resources/signals.py,sha256=TASaTxZasod_LPyqDtsn4RLfc9YFnDWSA0v78lIViqM,204
5
+ wbhuman_resources/tasks.py,sha256=hE3i9OgoqzI_sjqiiOEyX5yGFvX4nJT9WyWHLYg0teU,7920
6
+ wbhuman_resources/urls.py,sha256=FfpMuxZejfMt3xVu18WOa2aXC4ht2-MIESRmC_GUuIU,7980
7
+ wbhuman_resources/utils.py,sha256=EZNxathbV_Azj1XX489X78WDbiNwj6F5FUqBqMrV2sg,1487
8
+ wbhuman_resources/admin/__init__.py,sha256=hXIquTlOG4HFeeMetc6T1LwNJmFc9HBbtpCAQsgV8oM,113
9
+ wbhuman_resources/admin/absence.py,sha256=cAc0O4f3BFp9sXrzFHB3ly-JzeLMqPmWgLXsMrSWlHY,3712
10
+ wbhuman_resources/admin/calendars.py,sha256=p6HtJ1cr9f6_RDBSApqTDwxWWhpDEzZ-EisOodT-y5I,860
11
+ wbhuman_resources/admin/employee.py,sha256=XfxHCRv3lg9wFiOixIQIEmbRCLtZ3b3VBDS4kBF8jJY,3123
12
+ wbhuman_resources/admin/kpi.py,sha256=ErNqXohvn-ht9cSFWg2qxd0qWyR6np0QklPARBNlKPI,542
13
+ wbhuman_resources/admin/review.py,sha256=Fxkfk5Fr3O8aOTGNXzQd8W_XRy4dKbAmBB6thAF6N-c,5038
14
+ wbhuman_resources/factories/__init__.py,sha256=-7-O4_7YqtwDDQUIRt4hJ6yiSpS0ESMbJTUoIhKPYS4,945
15
+ wbhuman_resources/factories/absence.py,sha256=phOAnvpLB-TEFXiNrc5jMbKC_zYT2bvrzyCHbcBfITA,3600
16
+ wbhuman_resources/factories/calendars.py,sha256=wXSuwbbSA7WUtAbIYBKS4EYLbcp4EGjUyQw8gDYBR_8,1627
17
+ wbhuman_resources/factories/employee.py,sha256=yJPNwDIVGer1yPgJlFnqZGLai9sZ0XHgJj_ZDsqRPVI,2898
18
+ wbhuman_resources/factories/kpi.py,sha256=RkaLN1bXmGN_I7v6NnTJBqqWs1AV1jrxgNgTSMf21Fc,5333
19
+ wbhuman_resources/filters/__init__.py,sha256=X3NkjcBU_i_K8cTHEptAH3YRaG1CXQ-JAHW7rqcJ2sI,689
20
+ wbhuman_resources/filters/absence.py,sha256=yNQDFWeO1kyiXfmLKKLPHReq_r8iwgGYnm0AdwWI-98,3795
21
+ wbhuman_resources/filters/absence_graphs.py,sha256=L7eN32rJ9V20mPfv5XtuRpH0BUh1V6th7czA-ZTKkXo,2984
22
+ wbhuman_resources/filters/calendars.py,sha256=t5Z8RrkJkG7uDOqYfTYyyYZpGZ3YgDUz8AqHoAbzHlM,812
23
+ wbhuman_resources/filters/employee.py,sha256=DmtqdWldt2vRkhk78T61i7dFy9KeI7FuBES6A3MlRoI,3121
24
+ wbhuman_resources/filters/kpi.py,sha256=OFEgDDfEw6kSn890rQlsJfFtVIWBziyRqf7HvG30Dt8,946
25
+ wbhuman_resources/filters/review.py,sha256=uqtms_Yx4mioknpnJ-RqKczS6XJsH0pvyYKqJ7ZeOnM,3988
26
+ wbhuman_resources/filters/signals.py,sha256=2NJp-rrIKcnGL8RyT2B7XU1dBUNi7rwaQz5mWUvyGhY,967
27
+ wbhuman_resources/locale/de/LC_MESSAGES/django.mo,sha256=50AONgS726fjFpFSgLHGRuno9VHQKj09omYN4UIQJco,33182
28
+ wbhuman_resources/locale/de/LC_MESSAGES/django.po,sha256=MBgvjB0plu2D-OdMDZ9wo8efkNFoKVnMU7GMsavp-Yc,59813
29
+ wbhuman_resources/locale/de/LC_MESSAGES/django.po.translated,sha256=HGb5_CwYFpKdRg3QFgQ5_LOWtCPolWQUg3-BBK_sc0A,78574
30
+ wbhuman_resources/locale/en/LC_MESSAGES/django.mo,sha256=UXCQbz2AxBvh-IQ7bGgjoBnijo8h9DfE9107A-2Mgkk,337
31
+ wbhuman_resources/locale/en/LC_MESSAGES/django.po,sha256=pvtAJQjPqz60r1fG7xof1E24kdi9FCA0CtEP8YQCNAM,46219
32
+ wbhuman_resources/locale/fr/LC_MESSAGES/django.mo,sha256=t4lh3zX7kshbDAFzXa5HU_YGPXkPzKqODNXL2MeZ5KQ,429
33
+ wbhuman_resources/locale/fr/LC_MESSAGES/django.po,sha256=8twI9pBcEU1O1USFbYSZGq45JEeprEuhTmMQJUs5Jxg,46323
34
+ wbhuman_resources/management/__init__.py,sha256=1KGHz86f8bIswGasUyHvQoigCVU1i8IEyzlPLr6U60Y,879
35
+ wbhuman_resources/migrations/0001_initial_squashed_squashed_0015_alter_absencerequest_calendaritem_ptr_and_more.py,sha256=G4CTuIo6tmYKHHH2957uJMG2Xqiv84hIPpNEVC8cWds,41304
36
+ wbhuman_resources/migrations/0016_alter_employeehumanresource_options.py,sha256=-PJstNsJpIUOmQ3-VSJuqCGHm4Xa3wLGLfm9gYnqUf4,624
37
+ wbhuman_resources/migrations/0017_absencerequest_crossborder_country_and_more.py,sha256=8NBMEP9d8kfn9TcNEegyqwQB0erEHYLdOqVLAXgwQhM,1954
38
+ wbhuman_resources/migrations/0018_remove_position_group_position_groups.py,sha256=7YphfPrHFeQBbCzumMDxn9Izpb3VthA5NKzRtAdMY1A,1094
39
+ wbhuman_resources/migrations/0019_alter_absencerequest_options_alter_kpi_options_and_more.py,sha256=-2dOMEBBbCaeM0Y8gc4VXbE7d1jPuvTHaz5WxkF-Gxc,1568
40
+ wbhuman_resources/migrations/0020_alter_employeeyearbalance_year_alter_review_year.py,sha256=fdt5rwLTNBWM6qN0a3T5b2WZs_BWoDilF1LjLYEe-2Q,788
41
+ wbhuman_resources/migrations/0021_alter_position_color.py,sha256=i1IPWN4StZ1DoeVgHlzqujzASz2JJeIo5vi07CnQi7Y,506
42
+ wbhuman_resources/migrations/0022_remove_review_editable_mode.py,sha256=5Q1y_wZZruvKRkK4l6LsHDUYagJ2spWx7RPHfH5X8Pw,2224
43
+ wbhuman_resources/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ wbhuman_resources/models/__init__.py,sha256=PW4LDmMpJqcynmnbdy_VSwbhxyDU9ZCR2LIXk6LkHlg,631
45
+ wbhuman_resources/models/absence.py,sha256=WDepyQjrySU860ESSZRP4Z13UlenMZD5JTsDS8Bm7xY,35892
46
+ wbhuman_resources/models/calendars.py,sha256=TjUaabVldDY4baZN9tGVJA609LUAZV2pCowTCEa4VYA,14621
47
+ wbhuman_resources/models/employee.py,sha256=tfaHSccffScvRONhFtN4Rgj2QqLUUwm8oySRfWhBq-M,50290
48
+ wbhuman_resources/models/kpi.py,sha256=BrYKb56MKm5Ya0sIav3-jmw0qk4zKNoSRr0bYfNM9mk,7270
49
+ wbhuman_resources/models/preferences.py,sha256=iQhcu-jrEkk8DgM5hgakg5mdkbtlO11KeJC0QpTBcKI,1432
50
+ wbhuman_resources/models/review.py,sha256=QXXckJclht6iAw75_QL6bva4urHeSeUgbu4D_lsmiaw,39414
51
+ wbhuman_resources/permissions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ wbhuman_resources/permissions/backend.py,sha256=lPIcCLkYG7gqtx7EgGquQrt_yhscZWj2ZGBqOWm8Cww,872
53
+ wbhuman_resources/serializers/__init__.py,sha256=r-XHaWLkgo0mxxns3cpT_fo9ASWagMW9O26tqmsXtHg,1620
54
+ wbhuman_resources/serializers/absence.py,sha256=_8lluuykmZEeEVio54YsbOD2kRf5miq0OHj4rLilipU,11984
55
+ wbhuman_resources/serializers/calendars.py,sha256=bvnGbZZtr4QckwAkajuS_b69zJOF6msYjh0mu7d4Crs,2384
56
+ wbhuman_resources/serializers/employee.py,sha256=-ll-UAIVMGtaWtdtEc8q_qlzToa9W6Yd8HOZ0KcltmY,10101
57
+ wbhuman_resources/serializers/kpi.py,sha256=JjpazovWjY8MUjD_1NUudQot_BYwzetKzbiEvMPQOug,2636
58
+ wbhuman_resources/serializers/review.py,sha256=BvYYBnLJox3k7SgLSvRvkqng7w64AFW4jesgefSIJPI,16163
59
+ wbhuman_resources/templates/review/review_report.html,sha256=gQzrmtAwrjpAAVXtxYpiZnF5Bj1qH9HtN6kdzvrcQPA,13507
60
+ wbhuman_resources/tests/__init__.py,sha256=YiG81oh2Z7zj69rm34NBf5R0VniHawVUBWXqgdZG9NA,24
61
+ wbhuman_resources/tests/conftest.py,sha256=RUEBcTl9x_m378xjCEhiHpWNLs8GmvcCpCvkCuhVuks,3101
62
+ wbhuman_resources/tests/signals.py,sha256=5BAx5SpPdUXOW3VHMidbSmdUpk41gCih1rBxpulCFrs,4379
63
+ wbhuman_resources/tests/test_permission.py,sha256=4bSlHFgTvpjSqkll6I7figiTGL2LH8b5S-BkUcklz50,2478
64
+ wbhuman_resources/tests/test_tasks.py,sha256=RanSdytvm525K_JjUDuwaG4oLBRldbpFpJEdGy7eUR4,3265
65
+ wbhuman_resources/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ wbhuman_resources/tests/models/test_absences.py,sha256=Ski8-aycJcOFsTU_Ucfwh9dGS9Bpr7NXYtrARg_X_vg,22874
67
+ wbhuman_resources/tests/models/test_calendars.py,sha256=m_FIjCvzhK8DV5Waw3X_2UOe_1nSp9sHWVcu4kgRnNk,9372
68
+ wbhuman_resources/tests/models/test_employees.py,sha256=vubEioP9LDcH5OCi4gK4Mrtovj4HZ_D94E2CM_FDv88,23092
69
+ wbhuman_resources/tests/models/test_review.py,sha256=YZHxBmvqEpvbSaePldJZ1vzFk7F6Hq1paDrrrODIoGY,4527
70
+ wbhuman_resources/tests/models/test_utils.py,sha256=f3df5rpk7--6_kM1XGspeCrDUYto0m97i8Cs8pYM7B4,4676
71
+ wbhuman_resources/viewsets/__init__.py,sha256=Yg_nkFnzkf_HGmScY6jcZBXcFcwJ4ePW5gKwpaG2ybU,2142
72
+ wbhuman_resources/viewsets/absence.py,sha256=eY67-chD5RXX7_jt3rPVSZTili_p2jY52QMNy13h1jU,13191
73
+ wbhuman_resources/viewsets/absence_charts.py,sha256=1z8lKt-8O7MhePBVHZTbgeZlD0X0IcP8JnhA_gKU7qw,12303
74
+ wbhuman_resources/viewsets/calendars.py,sha256=qX5rPnw6f6LBYd8_vxc17AUtX22LGwhZs5_fiO2sBbE,3153
75
+ wbhuman_resources/viewsets/employee.py,sha256=ffJpIrV2f2n_a2I-Dx6XXlirLO6G3D83cdpwZDKBAVI,7345
76
+ wbhuman_resources/viewsets/kpi.py,sha256=Ua_IEaFz20Nv1g7HhFl0o4Vd86gnC2YcdzaKd2nFcEs,10952
77
+ wbhuman_resources/viewsets/mixins.py,sha256=ziLsNSENzxTcFQStsNZgsHeqQRKEQnHeryFigND2pMI,458
78
+ wbhuman_resources/viewsets/review.py,sha256=fFMx2R_uWxdKSroaHTEA8cQaEHy1akhRLyRnk3gDGQM,32602
79
+ wbhuman_resources/viewsets/utils.py,sha256=stM4coAl9JVLdJ1Q2z4ziDOoNSNXugydpT4a4Tv9N2s,969
80
+ wbhuman_resources/viewsets/buttons/__init__.py,sha256=bjyHwL71gqYc5hz13GtDU7l8ocOscBgThet7FIesZ_s,248
81
+ wbhuman_resources/viewsets/buttons/absence.py,sha256=wEumCQ3qEomU9-RrsSCJS_A2FeBChTPoaOXANyP0uOU,1227
82
+ wbhuman_resources/viewsets/buttons/employee.py,sha256=yjsZZP1ULKNT-I14s7UOyodVsD2icxOi1vSw2-bwVO4,1916
83
+ wbhuman_resources/viewsets/buttons/kpis.py,sha256=QYmWCfgOBWJRJEmKqsnFLyUWP9VpfREhVv5w7wRHIHM,642
84
+ wbhuman_resources/viewsets/buttons/review.py,sha256=QBVVLTelZIPAew_oHfzJKCGSgrF3tMLRkkc_BHzCwfQ,9463
85
+ wbhuman_resources/viewsets/display/__init__.py,sha256=RrGaTA-EMvnUyY1DkI-nSGKHCdimqCTS2xQfymuVcS8,1226
86
+ wbhuman_resources/viewsets/display/absence.py,sha256=3gF3fDUNwGoc-k1B8E0raGjgCyMqezkNA6-FR6xfgOw,13631
87
+ wbhuman_resources/viewsets/display/calendars.py,sha256=NWsPnNZQJuHBP8wAlh6iOE9ou4l93b1oE5WCxok7ADY,3041
88
+ wbhuman_resources/viewsets/display/employee.py,sha256=5DU_s61Ad0NsCqunes6vLDqzCtqBmr3VGzIXCboLROI,10880
89
+ wbhuman_resources/viewsets/display/kpis.py,sha256=40RM0Bq7nWpMc0b29kJhgynDjMyUoedcld1AlQ5w21I,3668
90
+ wbhuman_resources/viewsets/display/review.py,sha256=9vW-h8oY4GBf5I8scUI48EPZPWpNIZ70ht5QT9Hy-DY,18879
91
+ wbhuman_resources/viewsets/endpoints/__init__.py,sha256=4wnSFaRKJwTcK2_F7upzVZKPtK5BLcLRpOPcECq9in8,1450
92
+ wbhuman_resources/viewsets/endpoints/absence.py,sha256=s5Z0B_nenU0b_cIpe1TroLA71ASxszBt4uWODmRbrU8,1863
93
+ wbhuman_resources/viewsets/endpoints/calendars.py,sha256=Rt-fMwNBQCugBE3-LLK3P3OsF7upbEPm2pyy175ZcPM,640
94
+ wbhuman_resources/viewsets/endpoints/employee.py,sha256=BAp6Y1YNlBFCA-jK-dk2L32kq-zF4u1aWxh526PvYOw,1653
95
+ wbhuman_resources/viewsets/endpoints/kpis.py,sha256=NzN641_p_J_-84pOXc6niG3gUXHDR72S6JGpLE-jxqQ,1498
96
+ wbhuman_resources/viewsets/endpoints/review.py,sha256=a5wOCc0e0hwupUtjjO4qeAJpMK794P4Jrg08zC_k8zY,7371
97
+ wbhuman_resources/viewsets/menu/__init__.py,sha256=gQpSPILszyjF4baPkPfq0LQYRmBPUYsKUpfFB38dV60,617
98
+ wbhuman_resources/viewsets/menu/absence.py,sha256=hremrhywIaCLvira-pcDx47CjFz5ILhVBFnhQxTqQkU,1863
99
+ wbhuman_resources/viewsets/menu/administration.py,sha256=pnRnFrPfHRzwdyXQk1X50bXGUDxCJarUEWgkrGOnnpI,384
100
+ wbhuman_resources/viewsets/menu/calendars.py,sha256=kTLaIqME_9nEA7i3B6TrpCqzHt5LDIlg520C-aWJ2OM,1228
101
+ wbhuman_resources/viewsets/menu/employee.py,sha256=rDLJz0WXXZ-c4vNgTNJB9qNLvU5HI_KiIeAKAvj1aMc,1562
102
+ wbhuman_resources/viewsets/menu/kpis.py,sha256=PZOz4nkYwS_k2V3NEXpCQ5ApCoxBlMSuzuN8go7GauE,672
103
+ wbhuman_resources/viewsets/menu/review.py,sha256=ya6NLt8-Zm5O1OiAhjkkXvRDUBQV-3A03wXDw8DQ8Yg,3481
104
+ wbhuman_resources/viewsets/titles/__init__.py,sha256=L95MHtEDJcG7rJHeJZ5MgSFYyKEqm0ME9OyyLrNSVQ4,667
105
+ wbhuman_resources/viewsets/titles/absence.py,sha256=4F4ENgmZBGKiDuC8DmgrklNXEsRo83d1sde_Jk3CQ8I,1148
106
+ wbhuman_resources/viewsets/titles/employee.py,sha256=VP_AC3E-3fpbO8-RUvi2haXcoJr9LVLYtJifGawVRGo,565
107
+ wbhuman_resources/viewsets/titles/kpis.py,sha256=OSH_vIsIjfThWn17X_K7ykBKAFqNvz8M4PyFCF8BRQo,491
108
+ wbhuman_resources/viewsets/titles/review.py,sha256=fL_PqTNAIK7alk_-7RaklkiR9guh54u8oS0m5AWOSSc,2458
109
+ wbhuman_resources-1.58.4.dist-info/METADATA,sha256=KMa-V_kLlb-g4Bnm66P1T9b7jLcz1gA1TpP8Fi_lDqw,272
110
+ wbhuman_resources-1.58.4.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
111
+ wbhuman_resources-1.58.4.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py2-none-any
5
+ Tag: py3-none-any