Fakultas Ilmu Komputer UI
Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ppl-fasilkom-ui
2021
Kelas D
PT Gizi Sehat - Dietela
Dietela Backend
Commits
cc52de5f
Commit
cc52de5f
authored
Jun 29, 2021
by
Muzaki Azami
Committed by
Kefas Satrio Bangkit Solidedantyo
Jun 29, 2021
Browse files
Adding user phone number
parent
3954aa76
Changes
3
Hide whitespace changes
Inline
Side-by-side
authentication/serializers.py
View file @
cc52de5f
...
...
@@ -58,6 +58,13 @@ class CustomUserDetailsSerializer(serializers.ModelSerializer):
result
[
'role'
]
=
instance
.
groups
.
first
().
name
if
instance
.
is_staff
:
result
[
'role'
]
=
'admin'
onboarding_status
=
UserAuthSerializer
(
instance
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
is
True
\
and
'role'
in
onboarding_status
:
phone_number
=
instance
.
diet_questionnaire
.
whatsapp_no
if
phone_number
is
None
:
phone_number
=
instance
.
diet_questionnaire
.
handphone_no
result
[
'phone_number'
]
=
phone_number
return
result
class
Meta
:
...
...
profile_dietku/tests.py
View file @
cc52de5f
...
...
@@ -8,7 +8,7 @@ from dietela_quiz.models import DietProfile
from
authentication.models
import
CustomUser
from
nutritionists.models
import
Nutritionist
from
diet_questionnaire.models
import
DietQuestionnaire
from
authentication.serializers
import
CustomUserDetailsSerializer
from
authentication.serializers
import
CustomUserDetailsSerializer
,
UserAuthSerializer
from
django.db.models
import
Q
from
.models
import
DietRecommendation
...
...
@@ -160,15 +160,18 @@ class GetProfilesAndCSVTest(APITestCase):
users
=
CustomUser
.
objects
.
all
()
users
=
users
.
order_by
(
'name'
)
for
user
in
users
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
onboarding_status
=
UserAuthSerializer
(
user
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
==
True
\
and
onboarding_status
[
'role'
]
==
"client"
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
self
.
assertEqual
(
response
.
data
,
expected_response
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
...
...
@@ -179,15 +182,18 @@ class GetProfilesAndCSVTest(APITestCase):
users
=
CustomUser
.
objects
.
filter
(
name
=
"tesb"
)
users
=
users
.
order_by
(
'name'
)
for
user
in
users
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
onboarding_status
=
UserAuthSerializer
(
user
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
==
True
\
and
onboarding_status
[
'role'
]
==
"client"
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
self
.
assertEqual
(
response
.
data
,
expected_response
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
...
...
@@ -208,15 +214,18 @@ class GetProfilesAndCSVTest(APITestCase):
users
=
CustomUser
.
objects
.
filter
(
Q
(
nutritionist
=
1
)
&
~
Q
(
email
=
'test2@2test.com'
))
expected_response
=
[]
for
user
in
users
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
onboarding_status
=
UserAuthSerializer
(
user
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
==
True
\
and
onboarding_status
[
'role'
]
==
"client"
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
self
.
assertEqual
(
response
.
data
,
expected_response
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
...
...
@@ -238,15 +247,18 @@ class GetProfilesAndCSVTest(APITestCase):
users
=
users
.
order_by
(
'name'
)
expected_response
=
[]
for
user
in
users
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
onboarding_status
=
UserAuthSerializer
(
user
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
==
True
\
and
onboarding_status
[
'role'
]
==
"client"
:
expected_response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
self
.
assertEqual
(
response
.
data
,
expected_response
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
...
...
profile_dietku/views.py
View file @
cc52de5f
...
...
@@ -5,7 +5,7 @@ from rest_framework.response import Response
from
django.db.models
import
Q
from
django.http
import
HttpResponse
from
authentication.models
import
CustomUser
from
authentication.serializers
import
CustomUserDetailsSerializer
from
authentication.serializers
import
CustomUserDetailsSerializer
,
UserAuthSerializer
from
dietela_quiz.models
import
DietProfile
from
diet_questionnaire.models
import
DietQuestionnaire
from
.utilities
import
dp_helper
,
dq_helper
...
...
@@ -43,15 +43,18 @@ class GetProfilesViewSet(generics.ListAPIView):
response
=
[]
for
user
in
queryset
:
response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
onboarding_status
=
UserAuthSerializer
(
user
).
data
if
onboarding_status
[
'is_finished_onboarding'
]
is
True
\
and
onboarding_status
[
'role'
]
==
"client"
:
response
.
append
({
'user'
:
CustomUserDetailsSerializer
(
user
).
data
,
'diet_profile_id'
:
user
.
diet_profile
.
id
\
if
user
.
diet_profile
is
not
None
else
None
,
'diet_questionnaire_id'
:
user
.
diet_questionnaire
.
id
\
if
hasattr
(
user
,
'diet_questionnaire'
)
else
None
,
'diet_recommendation_id'
:
user
.
diet_recommendation
.
id
\
if
hasattr
(
user
,
'diet_recommendation'
)
else
None
})
return
Response
(
response
,
status
=
status
.
HTTP_200_OK
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment