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
61dc2aef
Commit
61dc2aef
authored
Jun 28, 2021
by
Ami
Browse files
adding phone number to user
parent
2bb9bb0d
Pipeline
#84142
passed with stages
in 18 minutes and 31 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
authentication/serializers.py
View file @
61dc2aef
...
...
@@ -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'
]
==
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 @
61dc2aef
...
...
@@ -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 @
61dc2aef
...
...
@@ -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'
]
==
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