Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
2ca367a1
Commit
2ca367a1
authored
Apr 28, 2017
by
Calen Pennington
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Extract some common logic about dirty serializers into a helper method
parent
0ca11f64
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
3 deletions
+14
-3
openedx/core/djangoapps/user_api/helpers.py
+10
-0
openedx/core/djangoapps/user_api/preferences/api.py
+4
-3
No files found.
openedx/core/djangoapps/user_api/helpers.py
View file @
2ca367a1
...
@@ -506,3 +506,13 @@ def shim_student_view(view_func, check_logged_in=False):
...
@@ -506,3 +506,13 @@ def shim_student_view(view_func, check_logged_in=False):
return
response
return
response
return
_inner
return
_inner
def
serializer_is_dirty
(
preference_serializer
):
"""
Return True if saving the supplied (Raw)UserPreferenceSerializer would change the database.
"""
return
(
preference_serializer
.
instance
is
None
or
preference_serializer
.
instance
.
value
!=
preference_serializer
.
validated_data
[
'value'
]
)
openedx/core/djangoapps/user_api/preferences/api.py
View file @
2ca367a1
...
@@ -20,7 +20,7 @@ from ..errors import (
...
@@ -20,7 +20,7 @@ from ..errors import (
UserAPIInternalError
,
UserAPIRequestError
,
UserNotFound
,
UserNotAuthorized
,
UserAPIInternalError
,
UserAPIRequestError
,
UserNotFound
,
UserNotAuthorized
,
PreferenceValidationError
,
PreferenceUpdateError
,
CountryCodeError
PreferenceValidationError
,
PreferenceUpdateError
,
CountryCodeError
)
)
from
..helpers
import
intercept_errors
from
..helpers
import
intercept_errors
,
serializer_is_dirty
from
..models
import
UserOrgTag
,
UserPreference
from
..models
import
UserOrgTag
,
UserPreference
from
..serializers
import
UserSerializer
,
RawUserPreferenceSerializer
from
..serializers
import
UserSerializer
,
RawUserPreferenceSerializer
...
@@ -143,7 +143,7 @@ def update_user_preferences(requesting_user, update, user=None):
...
@@ -143,7 +143,7 @@ def update_user_preferences(requesting_user, update, user=None):
try
:
try
:
serializer
=
serializers
[
preference_key
]
serializer
=
serializers
[
preference_key
]
if
serializer
.
instance
is
None
or
serializer
.
instance
.
value
!=
serializer
.
validated_data
[
'value'
]
:
if
serializer
_is_dirty
(
serializer
)
:
serializer
.
save
()
serializer
.
save
()
except
Exception
as
error
:
except
Exception
as
error
:
raise
_create_preference_update_error
(
preference_key
,
preference_value
,
error
)
raise
_create_preference_update_error
(
preference_key
,
preference_value
,
error
)
...
@@ -179,7 +179,8 @@ def set_user_preference(requesting_user, preference_key, preference_value, usern
...
@@ -179,7 +179,8 @@ def set_user_preference(requesting_user, preference_key, preference_value, usern
existing_user
=
_get_authorized_user
(
requesting_user
,
username
)
existing_user
=
_get_authorized_user
(
requesting_user
,
username
)
serializer
=
create_user_preference_serializer
(
existing_user
,
preference_key
,
preference_value
)
serializer
=
create_user_preference_serializer
(
existing_user
,
preference_key
,
preference_value
)
validate_user_preference_serializer
(
serializer
,
preference_key
,
preference_value
)
validate_user_preference_serializer
(
serializer
,
preference_key
,
preference_value
)
if
serializer
.
instance
is
None
or
serializer
.
instance
.
value
!=
serializer
.
validated_data
[
'value'
]:
if
serializer_is_dirty
(
serializer
):
try
:
try
:
serializer
.
save
()
serializer
.
save
()
except
Exception
as
error
:
except
Exception
as
error
:
...
...
Write
Preview
Markdown
is supported
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