Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
366 commits
Select commit Hold shift + click to select a range
82bbacb
Codigo para JEXATHON
carlosibarguren Oct 25, 2025
0afe8c6
phojne verification
exesilvestre Oct 25, 2025
99ded6e
Merge pull request #156 from JEXAPP/feat/twilio
valentin-rodriguez Oct 25, 2025
b53902a
feat: cloudinary sign in adapt
Oct 25, 2025
e4e9104
Merge branch 'juan-develop' into carlos-develop
carlosibarguren Oct 25, 2025
d590556
Merge pull request #155 from JEXAPP/feat/new-additional-info
exesilvestre Oct 25, 2025
8bf4e76
feat: migration
Oct 25, 2025
07e9b12
penalized
exesilvestre Oct 25, 2025
874036e
Merge pull request #158 from JEXAPP/feat/new-additional-info
exesilvestre Oct 25, 2025
d4270d6
Merge pull request #159 from JEXAPP/fix/penalties
valentin-rodriguez Oct 25, 2025
b90ca7c
Merge pull request #157 from JEXAPP/carlos-develop
valentin-rodriguez Oct 25, 2025
6d65545
phone unique
exesilvestre Oct 25, 2025
4f07c7e
Merge pull request #160 from JEXAPP/fix/phone
LeoFrag Oct 25, 2025
8478a07
fixed
exesilvestre Oct 25, 2025
6cae135
Merge pull request #161 from JEXAPP/fix/phone
LeoFrag Oct 25, 2025
7552327
verified out
exesilvestre Oct 25, 2025
3607ffa
Merge pull request #162 from JEXAPP/fix/phone
LeoFrag Oct 25, 2025
52e20e8
feat: validate-mail
Oct 25, 2025
8b0638a
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
d174178
fixed
Oct 25, 2025
f2eb1bf
Merge pull request #163 from JEXAPP/feat/validate-mail
exesilvestre Oct 25, 2025
9b478be
fix: endpoint name
Oct 25, 2025
82503c8
Merge pull request #164 from JEXAPP/feat/validate-mail
exesilvestre Oct 25, 2025
c08f4df
fixed
exesilvestre Oct 25, 2025
86a5bbd
Merge pull request #166 from JEXAPP/fix/less-validations
LeoFrag Oct 25, 2025
4128129
feat: new feature
Oct 25, 2025
c12ced7
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
c6de952
feat: new state
Oct 25, 2025
6d6e9f6
Merge pull request #167 from JEXAPP/feat/new-features
valentin-rodriguez Oct 25, 2025
29c0d5a
fixd
exesilvestre Oct 25, 2025
53e3a58
Merge pull request #168 from JEXAPP/fix/less-validations
LeoFrag Oct 25, 2025
1555ec6
feat: change format
Oct 25, 2025
2a8bf34
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
f07908f
Merge pull request #169 from JEXAPP/feat/new-features
valentin-rodriguez Oct 25, 2025
bee1e35
fixed
exesilvestre Oct 25, 2025
8fbf38c
Merge pull request #170 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
eb2653b
feat: validation phone
Oct 25, 2025
fe20a45
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
ede7a9b
fixed
exesilvestre Oct 25, 2025
1caeac5
Merge pull request #171 from JEXAPP/feat/new-features
exesilvestre Oct 25, 2025
dd742f0
Merge pull request #172 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
634376f
fix: expo push fix
Oct 25, 2025
63afb5b
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
ae1e168
Merge pull request #173 from JEXAPP/feat/new-features
exesilvestre Oct 25, 2025
c86cd37
fix
exesilvestre Oct 25, 2025
971ef3e
Merge pull request #174 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
2cdb762
fix
exesilvestre Oct 25, 2025
9b146f1
Merge pull request #175 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
7d78e09
fix
exesilvestre Oct 25, 2025
ad8dc94
Merge pull request #176 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
28a7783
fix
exesilvestre Oct 25, 2025
24d376a
Merge pull request #177 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
52a32fb
fix
exesilvestre Oct 25, 2025
f2ecdb9
Merge pull request #178 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
5206b34
fix
exesilvestre Oct 25, 2025
5dc19b1
Merge pull request #180 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
9a7fdff
fix
exesilvestre Oct 25, 2025
7b7fa18
Merge pull request #182 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
1c30e16
fix
exesilvestre Oct 25, 2025
1809738
Merge pull request #183 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 25, 2025
f99865f
fix
exesilvestre Oct 25, 2025
c263fd9
Merge pull request #184 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 25, 2025
44e8c58
feat: new attributes
Oct 25, 2025
42b05c3
Merge pull request #185 from JEXAPP/feat/new-features
exesilvestre Oct 25, 2025
b438323
migrations
Oct 25, 2025
18b0789
fix
exesilvestre Oct 25, 2025
644b1e3
Merge pull request #186 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 25, 2025
29b519a
Merge pull request #187 from JEXAPP/newmigrations
LeoFrag Oct 25, 2025
4b3d585
fix
exesilvestre Oct 25, 2025
d04fb3e
Merge pull request #188 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
6a9e1e5
fix
exesilvestre Oct 25, 2025
ff4b3fa
Merge pull request #189 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 25, 2025
7374f25
fix
exesilvestre Oct 25, 2025
f6c0a3b
Merge pull request #190 from JEXAPP/fix/jexathon
exesilvestre Oct 25, 2025
098dd5f
feat: new schema; fix employee endpoint
Oct 25, 2025
093228e
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 25, 2025
0461f2c
Merge pull request #191 from JEXAPP/feat/new-features
valentin-rodriguez Oct 25, 2025
892a0b2
fix
exesilvestre Oct 25, 2025
3ec5ef3
Merge pull request #192 from JEXAPP/fix/jexathon
LeoFrag Oct 25, 2025
2073bb4
fix
exesilvestre Oct 25, 2025
d15955b
Merge pull request #193 from JEXAPP/fix/jexathon
exesilvestre Oct 25, 2025
07ca3fe
fix
exesilvestre Oct 25, 2025
23ea6c8
Merge pull request #194 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 25, 2025
2c3a78b
feat: notifications
Oct 25, 2025
8118fbb
fix: conflicts
Oct 25, 2025
c829883
Merge pull request #195 from JEXAPP/feat/new-features
exesilvestre Oct 25, 2025
0348c58
fix
exesilvestre Oct 26, 2025
1849136
Merge pull request #196 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
43970db
feat: new notifications
Oct 26, 2025
02c074a
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 26, 2025
40e0b92
Merge pull request #197 from JEXAPP/feat/new-features
valentin-rodriguez Oct 26, 2025
91b63fd
fixed reset
exesilvestre Oct 26, 2025
f3750d4
Merge pull request #198 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
e89c05c
fix: user name
Oct 26, 2025
e8b3ed8
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 26, 2025
3661170
fix: user name
Oct 26, 2025
079211c
Merge pull request #199 from JEXAPP/feat/new-features
exesilvestre Oct 26, 2025
11391d5
fixed reset
exesilvestre Oct 26, 2025
8930b2a
Merge pull request #200 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
f3c1857
fixed reset
exesilvestre Oct 26, 2025
52ec80a
Merge pull request #201 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
07c5921
feat: register additional info
Oct 26, 2025
9c1ed6a
Merge pull request #202 from JEXAPP/feat/new-features
valentin-rodriguez Oct 26, 2025
72a42dc
fixed reset
exesilvestre Oct 26, 2025
a411908
Merge pull request #203 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
2434684
fixed reset
exesilvestre Oct 26, 2025
61f067e
fixJuan
Oct 26, 2025
1f1ec1c
Merge pull request #204 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
93766f1
Merge pull request #205 from JEXAPP/camponuevo
JuanGallo13 Oct 26, 2025
d43916f
fixed reset
exesilvestre Oct 26, 2025
cb115ec
Merge pull request #206 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 26, 2025
f691074
feat: new endpoint
Oct 26, 2025
c04007b
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Oct 26, 2025
776c32c
fixed reset
exesilvestre Oct 26, 2025
d1f84ec
Merge pull request #207 from JEXAPP/fix/jexathon
LeoFrag Oct 26, 2025
99c2137
Merge pull request #208 from JEXAPP/feat/new-features
exesilvestre Oct 26, 2025
d1ea2d3
fixed reset
exesilvestre Oct 26, 2025
1f94f39
Merge pull request #209 from JEXAPP/fix/jexathon
LeoFrag Oct 26, 2025
169b39a
fixed reset
exesilvestre Oct 26, 2025
991aa7c
fixed reset
exesilvestre Oct 26, 2025
890b420
Merge pull request #210 from JEXAPP/fix/jexathon
exesilvestre Oct 26, 2025
d3e7082
fixed reset
exesilvestre Oct 26, 2025
8633556
Merge pull request #211 from JEXAPP/fix/jexathon
exesilvestre Oct 26, 2025
10d83da
fixed reset
exesilvestre Oct 26, 2025
ba28e90
Merge branch 'develop' into fix/jexathon
exesilvestre Oct 26, 2025
b4491df
Merge pull request #212 from JEXAPP/fix/jexathon
carlosibarguren Oct 26, 2025
33747e8
fixed reset
exesilvestre Oct 26, 2025
8a6ff56
Merge pull request #213 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
df68990
feat: new fixes
Oct 26, 2025
d6dc11c
fixed reset
exesilvestre Oct 26, 2025
2f41dc3
Merge pull request #214 from JEXAPP/feat/new-features
JuanGallo13 Oct 26, 2025
96be3b5
Merge pull request #215 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
f8c8b64
fixed reset
exesilvestre Oct 26, 2025
209705a
Merge pull request #216 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
f8e64ae
fixed reset
exesilvestre Oct 26, 2025
19b09d4
Merge pull request #217 from JEXAPP/fix/jexathon
carlosibarguren Oct 26, 2025
eb90782
fixed reset
exesilvestre Oct 26, 2025
4465d5f
Merge pull request #218 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
dcc87a9
fixed reset
exesilvestre Oct 26, 2025
3ec70a2
Merge pull request #219 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
2a88c27
feat: fix
Oct 26, 2025
d94b4a2
Merge pull request #220 from JEXAPP/feat/new-features
JuanGallo13 Oct 26, 2025
082b104
fix notification log
Oct 26, 2025
88daae3
Merge pull request #221 from JEXAPP/feat/new-features
exesilvestre Oct 26, 2025
cc63129
fixed reset
exesilvestre Oct 26, 2025
3411b0d
Merge pull request #222 from JEXAPP/fix/jexathon
LeoFrag Oct 26, 2025
cdeba58
fixed
exesilvestre Oct 26, 2025
892abb2
Merge pull request #223 from JEXAPP/fix/jexathon
LeoFrag Oct 26, 2025
06b8d8c
fixed
exesilvestre Oct 26, 2025
d94b19f
Merge pull request #224 from JEXAPP/fix/jexathon
LeoFrag Oct 26, 2025
ba44b58
fixed
exesilvestre Oct 26, 2025
fee9203
Merge pull request #225 from JEXAPP/fix/jexathon
JuanGallo13 Oct 26, 2025
2667c8a
fixed
exesilvestre Oct 27, 2025
64e6268
Merge pull request #226 from JEXAPP/fix/jexathon
valentin-rodriguez Oct 27, 2025
198240b
fixed
exesilvestre Oct 27, 2025
2ff5e92
Merge pull request #227 from JEXAPP/fix/jexathon
carlosibarguren Oct 27, 2025
05d1a93
fixed
exesilvestre Oct 27, 2025
a08442b
Merge pull request #228 from JEXAPP/fix/jexathon
LeoFrag Oct 27, 2025
4ccb1eb
fixed
exesilvestre Oct 27, 2025
6eb1ceb
Merge pull request #229 from JEXAPP/fix/jexathon
LeoFrag Oct 27, 2025
c644f11
fixed
exesilvestre Oct 28, 2025
4c283fa
Merge pull request #230 from JEXAPP/fix/jexathon
LeoFrag Oct 28, 2025
d881eb6
fix: demo fixes
Oct 28, 2025
bb91246
Merge pull request #231 from JEXAPP/fix/demo-fixes
exesilvestre Oct 28, 2025
b9be9f3
fix: order vacancies
Oct 28, 2025
b3fd541
Merge pull request #232 from JEXAPP/fix/demo-fixes
exesilvestre Oct 28, 2025
9ec157d
feat: not shown offers
Oct 28, 2025
e5b291d
Merge pull request #233 from JEXAPP/fix/demo-fixes
valentin-rodriguez Oct 28, 2025
7732c25
fixed
exesilvestre Oct 28, 2025
5238026
Merge pull request #234 from JEXAPP/fix/jexathon
LeoFrag Oct 28, 2025
51ab5dc
fixed
exesilvestre Oct 28, 2025
8d12dc6
Merge pull request #235 from JEXAPP/fix/jexathon
LeoFrag Oct 28, 2025
edc0f5a
added
exesilvestre Oct 28, 2025
632d8fa
Merge pull request #236 from JEXAPP/fix/jexathon
carlosibarguren Oct 28, 2025
28ded64
added
exesilvestre Oct 28, 2025
af12c06
added
exesilvestre Oct 28, 2025
f626abd
Merge pull request #237 from JEXAPP/fix/jexathon
carlosibarguren Oct 28, 2025
3b02106
employee endpoints; has shown attributes
Oct 28, 2025
b9c7f1b
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into fix/…
Oct 28, 2025
33638c4
Merge pull request #238 from JEXAPP/fix/demo-fixes
valentin-rodriguez Oct 28, 2025
03b3915
languages and ratings
exesilvestre Nov 23, 2025
6b1ba8d
languages and ratings
exesilvestre Nov 23, 2025
e6f072d
languages and ratings
exesilvestre Nov 23, 2025
db555cc
languages and ratings
exesilvestre Nov 23, 2025
46d0ab9
languages and ratings
exesilvestre Nov 23, 2025
3b91f62
Merge pull request #239 from JEXAPP/feature/idioms
LeoFrag Nov 23, 2025
af64430
fix
exesilvestre Nov 23, 2025
c30b252
Merge pull request #240 from JEXAPP/fix/complete-description
LeoFrag Nov 23, 2025
8cf09ba
feat: add history work; add work experience and educations
Nov 23, 2025
2929483
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Nov 23, 2025
028a5a0
feat: add languages
Nov 23, 2025
3b9fb5b
Merge pull request #241 from JEXAPP/feat/last-fixes
exesilvestre Nov 23, 2025
0d09fff
fixed
exesilvestre Nov 24, 2025
cd19afd
fix lanaguage
exesilvestre Nov 24, 2025
001d261
Merge pull request #242 from JEXAPP/fix/mp-last
carlosibarguren Nov 24, 2025
8dd4f48
percent url
exesilvestre Nov 24, 2025
6114a94
Merge pull request #243 from JEXAPP/fix/mp-last
LeoFrag Nov 24, 2025
e028bef
feat: new features
Nov 24, 2025
cdfdd9a
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Nov 24, 2025
79c3f22
fix: delete cancelled events
Nov 24, 2025
f3908b1
Merge pull request #244 from JEXAPP/feat/last-fixes
carlosibarguren Nov 24, 2025
b23bf63
feat: add califications history
Nov 24, 2025
59a47ef
feat: add view profile description employer; fix birth date employee
Nov 24, 2025
57dea89
feat: notifications advice
Nov 24, 2025
8b4e923
Merge pull request #245 from JEXAPP/feat/last-fixes
carlosibarguren Nov 24, 2025
22d6c56
admin
exesilvestre Nov 24, 2025
3fdea0b
update emloyer info
exesilvestre Nov 24, 2025
4dfdd33
update emloyer info
exesilvestre Nov 24, 2025
fc45464
Merge pull request #246 from JEXAPP/fix/mp-last
exesilvestre Nov 24, 2025
882de8e
update emloyer info
exesilvestre Nov 24, 2025
f72b03a
Merge pull request #247 from JEXAPP/fix/mp-last
exesilvestre Nov 24, 2025
b5e50ed
feat: employee update view
Nov 24, 2025
b471bb3
fix: delete dni
Nov 24, 2025
513f20d
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Nov 24, 2025
3775f33
Merge pull request #248 from JEXAPP/feat/last-fixes
exesilvestre Nov 24, 2025
afa15fb
feat: update education and work experience
Nov 24, 2025
b46cad9
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into feat…
Nov 24, 2025
77a871a
Merge pull request #249 from JEXAPP/feat/last-fixes
exesilvestre Nov 24, 2025
8d8c019
fix
exesilvestre Nov 24, 2025
2cb038f
Merge pull request #250 from JEXAPP/fix/mp-last
LeoFrag Nov 24, 2025
badd912
mp
exesilvestre Nov 25, 2025
20a67eb
Merge pull request #251 from JEXAPP/fix/mp-last
LeoFrag Nov 25, 2025
d165015
fixed!
exesilvestre Nov 25, 2025
4add440
Merge pull request #252 from JEXAPP/fix/mp-last
LeoFrag Nov 25, 2025
1f3253e
feat: all payed attribute
Nov 25, 2025
1e9db03
Merge branch 'develop' of https://github.com/JEXAPP/jex-app into fix/…
Nov 25, 2025
b740010
Merge pull request #253 from JEXAPP/fix/last-fixes
carlosibarguren Nov 25, 2025
8a9cd39
feat: work type
Nov 25, 2025
3708b49
Merge pull request #254 from JEXAPP/fix/last-fixes
carlosibarguren Nov 25, 2025
5858b21
numero de comprobante
exesilvestre Feb 18, 2026
5e3ee47
numero de comprobante
exesilvestre Feb 18, 2026
e278bf6
mp_payment_id
exesilvestre Feb 21, 2026
68cc2ea
Merge pull request #255 from JEXAPP/feat/n-comprobante
carlosibarguren Feb 21, 2026
a928c17
fix: offer correction
Feb 24, 2026
984865c
Merge pull request #256 from JEXAPP/fix/offers
carlosibarguren Feb 24, 2026
613bae0
feat: new list employer
Feb 25, 2026
b95c857
Merge pull request #257 from JEXAPP/fix/offers
valentin-rodriguez Feb 25, 2026
056d373
fix: events
Feb 25, 2026
04207ff
Merge pull request #258 from JEXAPP/fix/events
valentin-rodriguez Feb 25, 2026
32674bc
fix: new order event list
Feb 26, 2026
a915c83
Merge pull request #259 from JEXAPP/fix/events
LeoFrag Feb 26, 2026
fc19d1a
feat: new delete endpoints
Feb 26, 2026
4c5b17d
Merge pull request #260 from JEXAPP/fix/events
valentin-rodriguez Feb 26, 2026
b6c213f
feat: new change state penalty
Mar 1, 2026
e50dfe2
feat: new migration
Mar 1, 2026
bc89344
Merge pull request #261 from JEXAPP/feat/penalty-state
exesilvestre Mar 1, 2026
1f64939
feat: new penalty state return admin info
Mar 1, 2026
18f0b80
Merge pull request #262 from JEXAPP/feat/penalty-state
exesilvestre Mar 1, 2026
b69a18c
fix: status response
Mar 1, 2026
725261d
Merge pull request #263 from JEXAPP/feat/penalty-state
exesilvestre Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion backend/applications/errors/application_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
NOT_VALID_APPLICATION_STATE = "La postulación no está en estado pendiente."
INVALID_APPLICATION_RELATIONSHIPS = "Relaciones de postulación no válidas."

ALREADY_APPLIED_SHIFTS = "Ya te postulaste a los turnos: {shifts}"
ALREADY_APPLIED_SHIFTS = "Ya te postulaste a uno o todos los turnos asociados."
5 changes: 4 additions & 1 deletion backend/applications/errors/attendance_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@
SHIFT_NOT_QR_ENABLED = "El turno no tiene el check-in por QR habilitado."
EMPLOYEE_DOES_NOT_MATCH_TOKEN = "El empleado no coincide con el token."
TOKEN_MISSING_REQUIRED_FIELDS = "Token missing required fields."
INVALID_TOKEN = "Token inválido o expirado."
INVALID_TOKEN = "Token inválido o expirado."

NOT_OFFER_ID = "El ID de la oferta es requerido."
NOT_OFFER_OWNER = "No sos el dueño de esta oferta."
4 changes: 3 additions & 1 deletion backend/applications/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@
from .applications import Application

__all__ = [
'Application'
'Application',
'Offer',
'OfferState'
]
48 changes: 42 additions & 6 deletions backend/applications/serializers/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
from eventos.formatters.date_time import CustomDateField, CustomTimeField
from notifications.constants import NotificationTypes
from notifications.services.send_notification import send_notification
from rating.utils import get_user_average_rating, get_user_rating_count
from user_auth.serializers.employee import ViewEmployeeEducationSerializer, ViewEmployeeWorkExperienceSerializer
from user_auth.serializers.language import EmployeeLanguageSerializer
from user_auth.utils import get_city_locality, calculate_age
from vacancies.constants import VacancyStates
from applications.errors.application_messages import ALREADY_APPLIED_SHIFTS, EMPLOYEE_PROFILE_NOT_FOUND, NOT_PERMISSION_APPLICATION, NOT_PERMISSION_APPLICATION
Expand Down Expand Up @@ -69,7 +72,7 @@ def validate(self, data):

if already_applied_shifts:
raise serializers.ValidationError(
ALREADY_APPLIED_SHIFTS.format(shifts=", ".join(map(str, already_applied_shifts)))
ALREADY_APPLIED_SHIFTS
)

return data
Expand All @@ -90,31 +93,48 @@ def save(self, **kwargs):
Application(employee=employee, shift_id=shift_id, state=pending_state)
for shift_id in shifts_ids
])

application = Application.objects.filter(
employee=employee,
shift_id__in=shifts_ids
).first()

send_notification(
user=employer,
title="Nueva postulación",
message="POSTULADO nomas",
notification_type_name=NotificationTypes.APPLICATION.value
title="Postulacion",
message="Has recibido una nueva postulacion.",
notification_type_name=NotificationTypes.APPLICATION.value,
data={
"application_id": application.id,
"vacancy_id": vacancy.id,
"employee_id": employee.id,
"shifts": shifts_ids
}
)

return True



class ApplicationDetailSerializer(serializers.ModelSerializer):
employee_id = serializers.IntegerField(source="employee.id")
current_shift = ShiftForApplicationSerializer(source='shift', read_only=True)
shifts = serializers.SerializerMethodField()
profile_image = serializers.SerializerMethodField()
name = serializers.SerializerMethodField()
description = serializers.CharField(source='employee.description')
age = serializers.SerializerMethodField()
approximate_location = serializers.SerializerMethodField()
average_rating = serializers.SerializerMethodField()
rating_count = serializers.SerializerMethodField()
work_experiences = ViewEmployeeWorkExperienceSerializer(source='employee.work_experiences', many=True)
educations = ViewEmployeeEducationSerializer(source='employee.educations', many=True)
languages = EmployeeLanguageSerializer(source='employee.languages', many=True)

class Meta:
model = Application
fields = ["current_shift", "shifts", "profile_image", "name", "description", "age", "approximate_location"]

fields = ["employee_id", "current_shift", "shifts", "profile_image", "name", "description", "age", "approximate_location", "average_rating", "rating_count", "work_experiences", "educations", "languages"]
def get_profile_image(self, obj):
return obj.employee.user.profile_image.url if obj.employee.user.profile_image else None

Expand All @@ -136,6 +156,12 @@ def get_shifts(self, obj):
vacancy_shifts = getattr(obj.shift.vacancy, "_prefetched_objects_cache", {}).get("shifts", obj.shift.vacancy.shifts.all())
other_shifts = [s for s in vacancy_shifts if s.id != current_shift_id]
return ShiftForApplicationSerializer(other_shifts, many=True).data

def get_average_rating(self, obj):
return get_user_average_rating(obj.employee.user)

def get_rating_count(self, obj):
return get_user_rating_count(obj.employee.user)

def validate(self, attrs):
user = self.context.get("user")
Expand All @@ -151,6 +177,8 @@ class ApplicationByShiftSerializer(serializers.ModelSerializer):
employee_id = serializers.IntegerField(source="employee.user_id")
full_name = serializers.SerializerMethodField()
profile_image = serializers.SerializerMethodField()
average_rating = serializers.SerializerMethodField()
rating_count = serializers.SerializerMethodField()

class Meta:
model = Application
Expand All @@ -160,6 +188,8 @@ class Meta:
"employee_id",
"full_name",
"profile_image",
"average_rating",
"rating_count",
]

def get_full_name(self, obj):
Expand All @@ -168,6 +198,12 @@ def get_full_name(self, obj):

def get_profile_image(self, obj):
return obj.employee.user.profile_image.url if obj.employee.user.profile_image else None

def get_average_rating(self, obj):
return get_user_average_rating(obj.employee.user)

def get_rating_count(self, obj):
return get_user_rating_count(obj.employee.user)


class ShiftWithApplicationsSerializer(serializers.ModelSerializer):
Expand Down
2 changes: 0 additions & 2 deletions backend/applications/serializers/attendance.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,6 @@ def get_offer(self):
"""
offer_id = self.validated_data['offer_id']
return Offer.objects.get(pk=offer_id)



class OfferByEventSerializer(serializers.ModelSerializer):
employee_id = serializers.IntegerField(source="employee.user.id", read_only=True)
Expand Down
94 changes: 93 additions & 1 deletion backend/applications/serializers/jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
from applications.utils import get_job_type_display
from eventos.formatters.date_time import CustomDateField, CustomTimeField
from eventos.models.event import Event
from payments.constants import PaymentStates
from payments.models.payments import Payment
from rating.models.rating import Rating
from vacancies.models.shifts import Shift


Expand Down Expand Up @@ -58,4 +61,93 @@ def get_shift(self, obj):
class EmployeeAcceptedEventsSerializer(serializers.ModelSerializer):
class Meta:
model = Event
fields = ["id", "name"]
fields = ["id", "name"]

class EmployeeJobsHistorySerializer(serializers.ModelSerializer):
event_id = serializers.IntegerField(source="selected_shift.vacancy.event.id")
event_name = serializers.CharField(source="selected_shift.vacancy.event.name")
event_image_url = serializers.SerializerMethodField()

start_date = CustomDateField(source="selected_shift.start_date")
start_time = CustomTimeField(source="selected_shift.start_time")
payment_amount = serializers.FloatField(source="selected_shift.payment")
payment_mp_id = serializers.SerializerMethodField()

company_name = serializers.CharField(source="employer.company_name")

employer_image_url = serializers.SerializerMethodField()
job_type = serializers.SerializerMethodField()
payment_date = serializers.SerializerMethodField()
stars = serializers.SerializerMethodField()
comment = serializers.SerializerMethodField()

class Meta:
model = Offer
fields = [
"event_id",
"event_name",
"event_image_url",
"start_date",
"start_time",
"job_type",
"payment_amount",
"payment_mp_id",
"payment_date",
"company_name",
"employer_image_url",
"stars",
"comment",
]

def get_job_type(self, obj):
vacancy = obj.selected_shift.vacancy
return get_job_type_display(vacancy)

def get_payment_date(self, obj):
payment = Payment.objects.filter(
offer=obj,
employee_id=obj.employee.user.id,
state__name=PaymentStates.APPROVED.value
).order_by('-updated_at').first()

if not payment:
return None

return payment.updated_at.strftime("%d/%m/%Y")

def get_payment_mp_id(self, obj):
payment = Payment.objects.filter(
offer=obj,
employee_id=obj.employee.user.id,
state__name=PaymentStates.APPROVED.value
).order_by('-updated_at').first()

if not payment:
return "El pago no está completo"

return payment.mp_payment_id



def get_stars(self, obj):
rating = Rating.objects.filter(
rater=obj.employee.user,
event=obj.selected_shift.vacancy.event
).first()
return rating.rating if rating else None

def get_comment(self, obj):
rating = Rating.objects.filter(
rater=obj.employee.user,
event=obj.selected_shift.vacancy.event
).first()
return rating.comments if rating else None

def get_event_image_url(self, obj):
if obj.selected_shift.vacancy.event.event_image:
return obj.selected_shift.vacancy.event.event_image.url
return None

def get_employer_image_url(self, obj):
owner = obj.selected_shift.vacancy.event.owner
return owner.profile_image.url if owner.profile_image else None
Loading