Commit 4ac90b9f by Simon Chen

Fix instructor profile image upload error

Fix the bug introduced when the profile_image_url attribute on the API was removed
EDUCATOR-1692
parent 9e627508
...@@ -247,7 +247,8 @@ class PositionSerializer(serializers.ModelSerializer): ...@@ -247,7 +247,8 @@ class PositionSerializer(serializers.ModelSerializer):
class PersonSerializer(serializers.ModelSerializer): class PersonSerializer(serializers.ModelSerializer):
"""Serializer for the ``Person`` model.""" """Serializer for the ``Person`` model."""
position = PositionSerializer(required=False) position = PositionSerializer(required=False)
profile_image = serializers.CharField(read_only=True, source='get_profile_image_url') profile_image_url = serializers.CharField(read_only=True, source='get_profile_image_url')
profile_image = StdImageSerializerField(required=False)
works = serializers.SlugRelatedField(many=True, read_only=True, slug_field='value', source='person_works') works = serializers.SlugRelatedField(many=True, read_only=True, slug_field='value', source='person_works')
urls = serializers.SerializerMethodField() urls = serializers.SerializerMethodField()
email = serializers.EmailField(required=True) email = serializers.EmailField(required=True)
...@@ -262,7 +263,7 @@ class PersonSerializer(serializers.ModelSerializer): ...@@ -262,7 +263,7 @@ class PersonSerializer(serializers.ModelSerializer):
model = Person model = Person
fields = ( fields = (
'uuid', 'given_name', 'family_name', 'bio', 'slug', 'position', 'profile_image', 'uuid', 'given_name', 'family_name', 'bio', 'slug', 'position', 'profile_image',
'partner', 'works', 'urls', 'email' 'partner', 'works', 'urls', 'email', 'profile_image_url',
) )
extra_kwargs = { extra_kwargs = {
'partner': {'write_only': True} 'partner': {'write_only': True}
......
...@@ -1111,6 +1111,8 @@ class PersonSerializerTests(TestCase): ...@@ -1111,6 +1111,8 @@ class PersonSerializerTests(TestCase):
def setUp(self): def setUp(self):
request = make_request() request = make_request()
self.context = {'request': request} self.context = {'request': request}
image_field = StdImageSerializerField()
image_field._context = self.context # pylint: disable=protected-access
position = PositionFactory() position = PositionFactory()
self.person = position.person self.person = position.person
...@@ -1119,7 +1121,8 @@ class PersonSerializerTests(TestCase): ...@@ -1119,7 +1121,8 @@ class PersonSerializerTests(TestCase):
'given_name': self.person.given_name, 'given_name': self.person.given_name,
'family_name': self.person.family_name, 'family_name': self.person.family_name,
'bio': self.person.bio, 'bio': self.person.bio,
'profile_image': self.person.profile_image_url, 'profile_image': image_field.to_representation(self.person.profile_image),
'profile_image_url': self.person.profile_image_url,
'position': PositionSerializer(position).data, 'position': PositionSerializer(position).data,
'works': [work.value for work in self.person.person_works.all()], 'works': [work.value for work in self.person.person_works.all()],
'urls': { 'urls': {
...@@ -1137,7 +1140,7 @@ class PersonSerializerTests(TestCase): ...@@ -1137,7 +1140,7 @@ class PersonSerializerTests(TestCase):
def test_profile_image_url_override(self): def test_profile_image_url_override(self):
self.person.profile_image_url = None self.person.profile_image_url = None
self.expected['profile_image'] = self.person.profile_image.url self.expected['profile_image_url'] = self.person.profile_image.url
serializer = PersonSerializer(self.person, context=self.context) serializer = PersonSerializer(self.person, context=self.context)
self.assertDictEqual(serializer.data, self.expected) self.assertDictEqual(serializer.data, self.expected)
......
...@@ -247,7 +247,7 @@ $(document).on('click', '.selected-instructor a.edit', function (e) { ...@@ -247,7 +247,7 @@ $(document).on('click', '.selected-instructor a.edit', function (e) {
$.getJSON({ $.getJSON({
url: btnInstructor.data('url') + uuid, url: btnInstructor.data('url') + uuid,
success: function (data) { success: function (data) {
$('.select-image').attr('src', data['profile_image']); $('.select-image').attr('src', data['profile_image_url']);
$('#given-name').val(data['given_name']); $('#given-name').val(data['given_name']);
$('#family-name').val(data['family_name']); $('#family-name').val(data['family_name']);
$('#title').val(data['position']['title']); $('#title').val(data['position']['title']);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment