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.
- wbhuman_resources/__init__.py +1 -0
- wbhuman_resources/admin/__init__.py +5 -0
- wbhuman_resources/admin/absence.py +113 -0
- wbhuman_resources/admin/calendars.py +37 -0
- wbhuman_resources/admin/employee.py +109 -0
- wbhuman_resources/admin/kpi.py +21 -0
- wbhuman_resources/admin/review.py +157 -0
- wbhuman_resources/apps.py +23 -0
- wbhuman_resources/dynamic_preferences_registry.py +119 -0
- wbhuman_resources/factories/__init__.py +38 -0
- wbhuman_resources/factories/absence.py +109 -0
- wbhuman_resources/factories/calendars.py +60 -0
- wbhuman_resources/factories/employee.py +80 -0
- wbhuman_resources/factories/kpi.py +155 -0
- wbhuman_resources/filters/__init__.py +20 -0
- wbhuman_resources/filters/absence.py +109 -0
- wbhuman_resources/filters/absence_graphs.py +85 -0
- wbhuman_resources/filters/calendars.py +28 -0
- wbhuman_resources/filters/employee.py +81 -0
- wbhuman_resources/filters/kpi.py +35 -0
- wbhuman_resources/filters/review.py +134 -0
- wbhuman_resources/filters/signals.py +27 -0
- wbhuman_resources/locale/de/LC_MESSAGES/django.mo +0 -0
- wbhuman_resources/locale/de/LC_MESSAGES/django.po +2207 -0
- wbhuman_resources/locale/de/LC_MESSAGES/django.po.translated +2456 -0
- wbhuman_resources/locale/en/LC_MESSAGES/django.mo +0 -0
- wbhuman_resources/locale/en/LC_MESSAGES/django.po +2091 -0
- wbhuman_resources/locale/fr/LC_MESSAGES/django.mo +0 -0
- wbhuman_resources/locale/fr/LC_MESSAGES/django.po +2093 -0
- wbhuman_resources/management/__init__.py +23 -0
- wbhuman_resources/migrations/0001_initial_squashed_squashed_0015_alter_absencerequest_calendaritem_ptr_and_more.py +949 -0
- wbhuman_resources/migrations/0016_alter_employeehumanresource_options.py +20 -0
- wbhuman_resources/migrations/0017_absencerequest_crossborder_country_and_more.py +55 -0
- wbhuman_resources/migrations/0018_remove_position_group_position_groups.py +32 -0
- wbhuman_resources/migrations/0019_alter_absencerequest_options_alter_kpi_options_and_more.py +44 -0
- wbhuman_resources/migrations/0020_alter_employeeyearbalance_year_alter_review_year.py +27 -0
- wbhuman_resources/migrations/0021_alter_position_color.py +18 -0
- wbhuman_resources/migrations/0022_remove_review_editable_mode.py +64 -0
- wbhuman_resources/migrations/__init__.py +0 -0
- wbhuman_resources/models/__init__.py +23 -0
- wbhuman_resources/models/absence.py +903 -0
- wbhuman_resources/models/calendars.py +370 -0
- wbhuman_resources/models/employee.py +1241 -0
- wbhuman_resources/models/kpi.py +199 -0
- wbhuman_resources/models/preferences.py +40 -0
- wbhuman_resources/models/review.py +982 -0
- wbhuman_resources/permissions/__init__.py +0 -0
- wbhuman_resources/permissions/backend.py +26 -0
- wbhuman_resources/serializers/__init__.py +49 -0
- wbhuman_resources/serializers/absence.py +308 -0
- wbhuman_resources/serializers/calendars.py +73 -0
- wbhuman_resources/serializers/employee.py +267 -0
- wbhuman_resources/serializers/kpi.py +80 -0
- wbhuman_resources/serializers/review.py +415 -0
- wbhuman_resources/signals.py +4 -0
- wbhuman_resources/tasks.py +195 -0
- wbhuman_resources/templates/review/review_report.html +322 -0
- wbhuman_resources/tests/__init__.py +1 -0
- wbhuman_resources/tests/conftest.py +96 -0
- wbhuman_resources/tests/models/__init__.py +0 -0
- wbhuman_resources/tests/models/test_absences.py +478 -0
- wbhuman_resources/tests/models/test_calendars.py +209 -0
- wbhuman_resources/tests/models/test_employees.py +502 -0
- wbhuman_resources/tests/models/test_review.py +103 -0
- wbhuman_resources/tests/models/test_utils.py +110 -0
- wbhuman_resources/tests/signals.py +108 -0
- wbhuman_resources/tests/test_permission.py +64 -0
- wbhuman_resources/tests/test_tasks.py +74 -0
- wbhuman_resources/urls.py +221 -0
- wbhuman_resources/utils.py +43 -0
- wbhuman_resources/viewsets/__init__.py +61 -0
- wbhuman_resources/viewsets/absence.py +312 -0
- wbhuman_resources/viewsets/absence_charts.py +328 -0
- wbhuman_resources/viewsets/buttons/__init__.py +7 -0
- wbhuman_resources/viewsets/buttons/absence.py +32 -0
- wbhuman_resources/viewsets/buttons/employee.py +44 -0
- wbhuman_resources/viewsets/buttons/kpis.py +16 -0
- wbhuman_resources/viewsets/buttons/review.py +195 -0
- wbhuman_resources/viewsets/calendars.py +103 -0
- wbhuman_resources/viewsets/display/__init__.py +39 -0
- wbhuman_resources/viewsets/display/absence.py +334 -0
- wbhuman_resources/viewsets/display/calendars.py +83 -0
- wbhuman_resources/viewsets/display/employee.py +254 -0
- wbhuman_resources/viewsets/display/kpis.py +92 -0
- wbhuman_resources/viewsets/display/review.py +429 -0
- wbhuman_resources/viewsets/employee.py +210 -0
- wbhuman_resources/viewsets/endpoints/__init__.py +42 -0
- wbhuman_resources/viewsets/endpoints/absence.py +57 -0
- wbhuman_resources/viewsets/endpoints/calendars.py +18 -0
- wbhuman_resources/viewsets/endpoints/employee.py +51 -0
- wbhuman_resources/viewsets/endpoints/kpis.py +53 -0
- wbhuman_resources/viewsets/endpoints/review.py +191 -0
- wbhuman_resources/viewsets/kpi.py +280 -0
- wbhuman_resources/viewsets/menu/__init__.py +22 -0
- wbhuman_resources/viewsets/menu/absence.py +50 -0
- wbhuman_resources/viewsets/menu/administration.py +15 -0
- wbhuman_resources/viewsets/menu/calendars.py +33 -0
- wbhuman_resources/viewsets/menu/employee.py +44 -0
- wbhuman_resources/viewsets/menu/kpis.py +18 -0
- wbhuman_resources/viewsets/menu/review.py +97 -0
- wbhuman_resources/viewsets/mixins.py +14 -0
- wbhuman_resources/viewsets/review.py +837 -0
- wbhuman_resources/viewsets/titles/__init__.py +18 -0
- wbhuman_resources/viewsets/titles/absence.py +30 -0
- wbhuman_resources/viewsets/titles/employee.py +18 -0
- wbhuman_resources/viewsets/titles/kpis.py +15 -0
- wbhuman_resources/viewsets/titles/review.py +62 -0
- wbhuman_resources/viewsets/utils.py +28 -0
- wbhuman_resources-1.58.4.dist-info/METADATA +8 -0
- wbhuman_resources-1.58.4.dist-info/RECORD +111 -0
- wbhuman_resources-1.58.4.dist-info/WHEEL +5 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
{% load static %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
{% load humanize %}
|
|
4
|
+
<!DOCTYPE html>
|
|
5
|
+
<html lang="en">
|
|
6
|
+
|
|
7
|
+
<head>
|
|
8
|
+
<meta charset="UTF-8">
|
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
10
|
+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
11
|
+
<title>{{ review.computed_str }}</title>
|
|
12
|
+
<link href="https://fonts.googleapis.com/css?family=Roboto:300,500&display=swap" rel="stylesheet">
|
|
13
|
+
<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}" />
|
|
14
|
+
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
|
|
15
|
+
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
|
|
16
|
+
<style>
|
|
17
|
+
html, body {
|
|
18
|
+
min-height: 100%;
|
|
19
|
+
padding: 0px;
|
|
20
|
+
margin: 0px;
|
|
21
|
+
font-family: 'Roboto', sans-serif;
|
|
22
|
+
font-size: 12px;
|
|
23
|
+
font-weight: 300;
|
|
24
|
+
color: #000000;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.company-logo {
|
|
28
|
+
width: 300px;
|
|
29
|
+
}
|
|
30
|
+
.product-table {
|
|
31
|
+
width: 100%;
|
|
32
|
+
align-self: center;
|
|
33
|
+
margin: auto;
|
|
34
|
+
justify-self: center;
|
|
35
|
+
}
|
|
36
|
+
.month {
|
|
37
|
+
color: #3c4759;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
font-size: small;
|
|
40
|
+
}
|
|
41
|
+
.text_center{
|
|
42
|
+
text-align: center;
|
|
43
|
+
}
|
|
44
|
+
.header-content th {
|
|
45
|
+
text-align: left;
|
|
46
|
+
width: 210px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.headline {
|
|
50
|
+
background-color: #3c4759;
|
|
51
|
+
color: white;
|
|
52
|
+
text-align: center;
|
|
53
|
+
font-weight: 500;
|
|
54
|
+
font-size: 12pt;
|
|
55
|
+
padding-top: 10px;
|
|
56
|
+
padding-bottom: 10px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.header {
|
|
60
|
+
width: 100%;
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: row;
|
|
63
|
+
justify-content: space-between;
|
|
64
|
+
align-items: center;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.table {
|
|
68
|
+
width: 100%;
|
|
69
|
+
border: none;
|
|
70
|
+
border-collapse: collapse;
|
|
71
|
+
margin: auto
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.table>tbody, .table>tfoot {
|
|
75
|
+
background-color: transparent
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.table>thead {
|
|
79
|
+
background-color: #9ca3ad;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.top-row {
|
|
83
|
+
border-top: 1px solid lightgrey;
|
|
84
|
+
}
|
|
85
|
+
.table>thead {
|
|
86
|
+
height: 30px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.table>tbody>tr:last-child>td, .table>tbody>tr:last-child>th {
|
|
90
|
+
padding-bottom: 15px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.table>thead>tr>th {
|
|
94
|
+
color: white;
|
|
95
|
+
font-weight: 500;
|
|
96
|
+
vertical-align: middle;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.table td, .table th {
|
|
100
|
+
line-height: 1.4em;
|
|
101
|
+
font-size: 1.1em;
|
|
102
|
+
font-weight: 300;
|
|
103
|
+
vertical-align: top;
|
|
104
|
+
text-align: justify;
|
|
105
|
+
overflow: hidden;
|
|
106
|
+
}
|
|
107
|
+
table.print-friendly tr td, table.print-friendly tr th {
|
|
108
|
+
page-break-inside: avoid;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
#summery_table tr:nth-child(even){background-color: #f2f2f2;}
|
|
112
|
+
#summery_table tbody th, #summery_table tbody th{border: '1px solid #ddd';}
|
|
113
|
+
|
|
114
|
+
.bad_rating {
|
|
115
|
+
background-color: rgb(244, 132, 116);
|
|
116
|
+
text-align: center;
|
|
117
|
+
}
|
|
118
|
+
.medium_rating {
|
|
119
|
+
background-color: rgb(247, 232, 113);
|
|
120
|
+
text-align: center;
|
|
121
|
+
}
|
|
122
|
+
.good_rating {
|
|
123
|
+
background-color: rgb(214, 229, 145);
|
|
124
|
+
text-align: center;
|
|
125
|
+
}
|
|
126
|
+
.comments {
|
|
127
|
+
font-style: italic;font-size: 10px;
|
|
128
|
+
text-align: justify;
|
|
129
|
+
background-color: #f2f2f2;
|
|
130
|
+
}
|
|
131
|
+
@media print {
|
|
132
|
+
.pagebreak { page-break-before: always; } /* page-break-after works, as well */
|
|
133
|
+
}
|
|
134
|
+
</style>
|
|
135
|
+
</head>
|
|
136
|
+
<body>
|
|
137
|
+
<div class="product-table" id="table">
|
|
138
|
+
<div class="header">
|
|
139
|
+
<a href="{{base_url}}" target="_blank">
|
|
140
|
+
<img class="company-logo" title="{% translate 'Atonrâ Website' %}" src="{% static 'portfolio/img/logo-atonra.svg' %}">
|
|
141
|
+
</a>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<div class="header-content">
|
|
145
|
+
<h2 class="text_center">{{ review.type }} {% translate "Evaluation Form" %}
|
|
146
|
+
{% if review.year %}
|
|
147
|
+
- {{ review.year|safe }}
|
|
148
|
+
{% endif %}
|
|
149
|
+
</h2>
|
|
150
|
+
<div>
|
|
151
|
+
<span class="month text_center">{{ review.computed_str }}</span>
|
|
152
|
+
<br/><br/>
|
|
153
|
+
</div>
|
|
154
|
+
<div>
|
|
155
|
+
<table>
|
|
156
|
+
<tr>
|
|
157
|
+
<th>{% translate "Reviewee" %} :</th>
|
|
158
|
+
<td class="subject"> {{ review.reviewee.computed_str }}</td>
|
|
159
|
+
</tr>
|
|
160
|
+
<tr>
|
|
161
|
+
<th>{% translate "Reviewer" %} :</th>
|
|
162
|
+
<td class="subject"> {{ review.reviewer.computed_str }}</td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr>
|
|
165
|
+
<th>{% translate "Moderator" %} :</th>
|
|
166
|
+
<td class="subject"> {{ review.moderator.computed_str }}</td>
|
|
167
|
+
</tr>
|
|
168
|
+
<tr>
|
|
169
|
+
<th>{% translate "Period covered" %} :</th>
|
|
170
|
+
<td class="date">{{ review.from_date|date:"j.m.Y" }} - {{ review.to_date|date:"j.m.Y" }}</td>
|
|
171
|
+
</tr>
|
|
172
|
+
<tr>
|
|
173
|
+
<th>{% translate "Deadline" %} :</th>
|
|
174
|
+
<td>{{ review.review_deadline|date:"j.m.Y" }}</td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr>
|
|
177
|
+
<th>{% translate "Review" %} :</th>
|
|
178
|
+
<td>{{ review.review|date:"j.m.Y h:m a" }}</td>
|
|
179
|
+
</tr>
|
|
180
|
+
</table>
|
|
181
|
+
<br/>
|
|
182
|
+
<table id='summery_table' style='margin-bottom: 20px;border-collapse: collapse;'>
|
|
183
|
+
<thead>
|
|
184
|
+
<tr>
|
|
185
|
+
<th></th>
|
|
186
|
+
<th>{% translate "Reviewee" %}</th>
|
|
187
|
+
<th>{% translate "Reviewer" %}</th>
|
|
188
|
+
</tr>
|
|
189
|
+
</thead>
|
|
190
|
+
<tbody>
|
|
191
|
+
<tr>
|
|
192
|
+
<th>{% translate "Notification date review completed" %} :</th>
|
|
193
|
+
<td>{{ review.completely_filled_reviewee|date:"j.m.Y" }}</td>
|
|
194
|
+
<td>{{ review.completely_filled_reviewer|date:"j.m.Y" }}</td>
|
|
195
|
+
</tr>
|
|
196
|
+
<tr>
|
|
197
|
+
<th>{% translate "Date of signature" %} :</th>
|
|
198
|
+
<td>{{ review.signed_reviewee|date:"j.m.Y h:m a" }}</td>
|
|
199
|
+
<td>{{ review.signed_reviewer|date:"j.m.Y h:m a" }}</td>
|
|
200
|
+
|
|
201
|
+
</tr>
|
|
202
|
+
</tbody>
|
|
203
|
+
|
|
204
|
+
</table>
|
|
205
|
+
<div class="widget">
|
|
206
|
+
<div class="headline">
|
|
207
|
+
{% translate "Review of questions to be answered on a scale of 1 to 4" %}
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
<table class="table" class="print-friendly" style="margin-bottom: 20px;">
|
|
211
|
+
<thead>
|
|
212
|
+
<tr>
|
|
213
|
+
<th style="width:20%; text-align: center;">{% translate "Category" %}</th>
|
|
214
|
+
<th style="width:60%; text-align: center;">{% translate "Questions & Comments" %}</th>
|
|
215
|
+
<th style="width:10%; text-align: center;">{% translate "Reviewee" %}</th>
|
|
216
|
+
<th style="width:10%; text-align: center;">{% translate "Reviewer" %}</th>
|
|
217
|
+
</tr>
|
|
218
|
+
</thead>
|
|
219
|
+
<tbody>
|
|
220
|
+
<div class="maininfo">
|
|
221
|
+
{% for category_id, data_category in rating_table.items %}
|
|
222
|
+
{% for key, data_questions in data_category.questions.items %}
|
|
223
|
+
<tr class="top-row">
|
|
224
|
+
<td style="text-align: left;font-size:10px;">{{ data_category.name }}</td>
|
|
225
|
+
<td style="text-align: left;font-size:11px;margin-left: 2px;">{{ data_questions.name }}
|
|
226
|
+
<p class="comments">
|
|
227
|
+
{% if data_questions.answers_text.reviewee %}
|
|
228
|
+
<b>{% translate "Reviewee" %} : </b>{{ data_questions.answers_text.reviewee|safe|linebreaksbr }}
|
|
229
|
+
{% if data_questions.answers_text.reviewer %}
|
|
230
|
+
<br/>
|
|
231
|
+
{% endif %}
|
|
232
|
+
{% endif %}
|
|
233
|
+
{% if data_questions.answers_text.reviewer %}
|
|
234
|
+
<b>{% translate "Reviewer" %} : </b>{{data_questions.answers_text.reviewer|safe|linebreaksbr }}
|
|
235
|
+
{% endif %}
|
|
236
|
+
</p>
|
|
237
|
+
</td>
|
|
238
|
+
<td style="text-align: center;font-weight: bold;">{{ data_questions.answers.reviewee }}</p></td>
|
|
239
|
+
<td style="text-align: center;font-weight: bold;">{{ data_questions.answers.reviewer }}</p></td>
|
|
240
|
+
</tr>
|
|
241
|
+
{% endfor %}
|
|
242
|
+
{% endfor %}
|
|
243
|
+
<tr class="top-row">
|
|
244
|
+
<td style="text-align: center;font-weight: bold;">#<br> μ</td>
|
|
245
|
+
<td style="text-align: center;font-weight: bold;">{{ number_total_rating }}<br/>{% translate "Global rating (weighted)" %}</td>
|
|
246
|
+
<td class='{{ global_rating_status_reviewee }}' style="text-align: center;font-weight: bold;"> <br>{{ global_rating_reviewee }}</td>
|
|
247
|
+
<td class='{{ global_rating_status_reviewee }}' style="text-align: center;font-weight: bold;"> <br>{{ global_rating_reviewer }}</td>
|
|
248
|
+
</tr>
|
|
249
|
+
</div>
|
|
250
|
+
</tbody>
|
|
251
|
+
</table>
|
|
252
|
+
|
|
253
|
+
<div class="pagebreak"> </div>
|
|
254
|
+
{% for category_id, data_category in table.items %}
|
|
255
|
+
<div class="widget">
|
|
256
|
+
<div class="headline">
|
|
257
|
+
{{ forloop.counter }} - {{ data_category.name }}
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
{% for key, data_questions in data_category.questions.items %}
|
|
261
|
+
<table class="table" class="print-friendly">
|
|
262
|
+
<thead>
|
|
263
|
+
<tr>
|
|
264
|
+
<th style="width:100%; text-align: center;">{{ data_questions.name }}</th>
|
|
265
|
+
</tr>
|
|
266
|
+
</thead>
|
|
267
|
+
<tbody>
|
|
268
|
+
<div class="maininfo">
|
|
269
|
+
{% for by, answer in data_questions.answers.items %}
|
|
270
|
+
<tr class="top-row">
|
|
271
|
+
<td>
|
|
272
|
+
<p>
|
|
273
|
+
<b>{{ by }} :</b>
|
|
274
|
+
{% if answer %}
|
|
275
|
+
{{ answer|safe|linebreaksbr }}
|
|
276
|
+
{% endif %}
|
|
277
|
+
</p>
|
|
278
|
+
</td>
|
|
279
|
+
</tr>
|
|
280
|
+
{% endfor %}
|
|
281
|
+
</div>
|
|
282
|
+
</tbody>
|
|
283
|
+
</table>
|
|
284
|
+
{% endfor %}
|
|
285
|
+
|
|
286
|
+
</div>
|
|
287
|
+
{% endfor %}
|
|
288
|
+
|
|
289
|
+
<div class="widget">
|
|
290
|
+
<div class="headline">
|
|
291
|
+
{% translate "Feedback" %}
|
|
292
|
+
</div>
|
|
293
|
+
<table class="table" class="print-friendly">
|
|
294
|
+
<tbody>
|
|
295
|
+
<div class="maininfo">
|
|
296
|
+
<tr class="top-row">
|
|
297
|
+
<td>
|
|
298
|
+
<p>
|
|
299
|
+
<b>{{ review.reviewee.computed_str }} :</b>
|
|
300
|
+
{{ review.feedback_reviewee|safe|linebreaksbr }}
|
|
301
|
+
</p>
|
|
302
|
+
</td>
|
|
303
|
+
</tr>
|
|
304
|
+
<tr class="top-row">
|
|
305
|
+
<td>
|
|
306
|
+
<p>
|
|
307
|
+
<b>{{ review.reviewer.computed_str }} :</b>
|
|
308
|
+
{{ review.feedback_reviewer|safe|linebreaksbr }}
|
|
309
|
+
</p>
|
|
310
|
+
</td>
|
|
311
|
+
</tr>
|
|
312
|
+
</div>
|
|
313
|
+
</tbody>
|
|
314
|
+
</table>
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
<br/>
|
|
319
|
+
</div>
|
|
320
|
+
|
|
321
|
+
</body>
|
|
322
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .conftest import *
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from django.apps import apps
|
|
2
|
+
from django.db import connection
|
|
3
|
+
from django.db.models.signals import pre_migrate
|
|
4
|
+
from pytest_factoryboy import register
|
|
5
|
+
from wbcore.contrib.authentication.factories import (
|
|
6
|
+
AuthenticatedPersonFactory,
|
|
7
|
+
InternalUserFactory,
|
|
8
|
+
SuperUserFactory,
|
|
9
|
+
UserFactory,
|
|
10
|
+
)
|
|
11
|
+
from wbcore.contrib.directory.factories import (
|
|
12
|
+
AddressContactFactory,
|
|
13
|
+
BankingContactFactory,
|
|
14
|
+
ClientFactory,
|
|
15
|
+
ClientManagerRelationshipFactory,
|
|
16
|
+
CompanyFactory,
|
|
17
|
+
CompanyTypeFactory,
|
|
18
|
+
CustomerStatusFactory,
|
|
19
|
+
EmailContactFactory,
|
|
20
|
+
EmployersCompanyFactory,
|
|
21
|
+
EntryFactory,
|
|
22
|
+
PersonFactory,
|
|
23
|
+
RelationshipFactory,
|
|
24
|
+
RelationshipTypeFactory,
|
|
25
|
+
TelephoneContactFactory,
|
|
26
|
+
UnemployedPersonFactory,
|
|
27
|
+
WebsiteContactFactory,
|
|
28
|
+
)
|
|
29
|
+
from wbcore.contrib.geography.factories import ContinentFactory, CountryFactory
|
|
30
|
+
from wbcore.contrib.geography.tests.signals import (
|
|
31
|
+
app_pre_migration as app_pre_migration_geography,
|
|
32
|
+
)
|
|
33
|
+
from wbhuman_resources.factories import (
|
|
34
|
+
AbsenceRequestFactory,
|
|
35
|
+
AbsenceRequestPeriodsFactory,
|
|
36
|
+
AbsenceRequestTypeFactory,
|
|
37
|
+
BalanceHourlyAllowanceFactory,
|
|
38
|
+
BaseDayOffCalendarFactory,
|
|
39
|
+
DayOffCalendarFactory,
|
|
40
|
+
DayOffFactory,
|
|
41
|
+
DefaultDailyPeriodFactory,
|
|
42
|
+
EmployeeHumanResourceFactory,
|
|
43
|
+
EmployeeWeeklyOffPeriodsFactory,
|
|
44
|
+
EmployeeYearBalanceFactory,
|
|
45
|
+
PositionFactory,
|
|
46
|
+
TimeOffRequestFactory,
|
|
47
|
+
TimeOffTypeFactory,
|
|
48
|
+
VacationRequestFactory,
|
|
49
|
+
VacationTypeFactory,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
register(DayOffCalendarFactory)
|
|
53
|
+
register(BaseDayOffCalendarFactory, "day_off_calendar_without_period"),
|
|
54
|
+
register(DayOffFactory)
|
|
55
|
+
register(EmployeeHumanResourceFactory)
|
|
56
|
+
register(EmployeeYearBalanceFactory)
|
|
57
|
+
register(AbsenceRequestFactory)
|
|
58
|
+
register(TimeOffRequestFactory, "time_off_request")
|
|
59
|
+
register(VacationRequestFactory, "vacation_request")
|
|
60
|
+
register(VacationTypeFactory, "time_off_type")
|
|
61
|
+
register(TimeOffTypeFactory, "vacation_type")
|
|
62
|
+
register(AbsenceRequestPeriodsFactory)
|
|
63
|
+
register(AbsenceRequestTypeFactory)
|
|
64
|
+
register(PositionFactory)
|
|
65
|
+
register(DefaultDailyPeriodFactory)
|
|
66
|
+
register(BalanceHourlyAllowanceFactory)
|
|
67
|
+
register(EmployeeWeeklyOffPeriodsFactory)
|
|
68
|
+
|
|
69
|
+
register(EntryFactory)
|
|
70
|
+
register(CompanyFactory)
|
|
71
|
+
register(PersonFactory)
|
|
72
|
+
register(ClientFactory)
|
|
73
|
+
register(InternalUserFactory)
|
|
74
|
+
register(UnemployedPersonFactory)
|
|
75
|
+
register(AuthenticatedPersonFactory)
|
|
76
|
+
register(EmployersCompanyFactory)
|
|
77
|
+
register(BankingContactFactory)
|
|
78
|
+
register(AddressContactFactory)
|
|
79
|
+
register(TelephoneContactFactory)
|
|
80
|
+
register(EmailContactFactory)
|
|
81
|
+
register(WebsiteContactFactory)
|
|
82
|
+
register(ClientManagerRelationshipFactory)
|
|
83
|
+
register(RelationshipFactory)
|
|
84
|
+
register(RelationshipTypeFactory)
|
|
85
|
+
register(CustomerStatusFactory)
|
|
86
|
+
register(CompanyTypeFactory)
|
|
87
|
+
register(ContinentFactory)
|
|
88
|
+
register(CountryFactory, "country")
|
|
89
|
+
|
|
90
|
+
register(AuthenticatedPersonFactory, "authenticated_person")
|
|
91
|
+
register(UserFactory)
|
|
92
|
+
register(SuperUserFactory, "superuser")
|
|
93
|
+
from .signals import app_pre_migration as app_pre_migration
|
|
94
|
+
|
|
95
|
+
pre_migrate.connect(app_pre_migration, sender=apps.get_app_config("wbhuman_resources"))
|
|
96
|
+
pre_migrate.connect(app_pre_migration_geography, sender=apps.get_app_config("geography"))
|
|
File without changes
|