Commit fbba5ecc by asadiqbal08 Committed by Jonathan Piacenti

asadiqbal08/api_support_title_field_userprofile: [MCKIN-1241] Added support for…

asadiqbal08/api_support_title_field_userprofile: [MCKIN-1241] Added support for title field to edX user profile
parent 3c64c86e
......@@ -273,6 +273,7 @@ class UserProfile(models.Model):
country = CountryField(blank=True, null=True)
goals = models.TextField(blank=True, null=True)
allow_certificate = models.BooleanField(default=1)
<<<<<<< HEAD
bio = models.CharField(blank=True, null=True, max_length=3000, db_index=False)
profile_image_uploaded_at = models.DateTimeField(null=True)
......@@ -283,6 +284,9 @@ class UserProfile(models.Model):
this user has uploaded a profile image.
"""
return self.profile_image_uploaded_at is not None
=======
title = models.CharField(blank=True, max_length=255, null=True)
>>>>>>> 947d2c7... asadiqbal08/api_support_title_field_userprofile: [MCKIN-1241] Added support for title field to edX user profile
def get_meta(self): # pylint: disable=missing-docstring
js_str = self.meta
......
......@@ -190,7 +190,7 @@ class UsersApiTests(TestCase):
lst_username.append(local_username)
data = {
'email': self.test_email, 'username': local_username, 'password': self.test_password, 'first_name': self.test_first_name,
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': '2000', "gender": 'male'}
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': '2000', "gender": 'male', "title": 'Software developer'}
response = self.do_post(test_uri, data)
self.assertEqual(response.status_code, 201)
......@@ -232,7 +232,7 @@ class UsersApiTests(TestCase):
local_username = self.test_username + str(randint(11, 99))
data = {
'email': self.test_email, 'username': local_username, 'password': self.test_password, 'first_name': self.test_first_name,
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': '2000', "gender": 'male'}
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': '2000', "gender": 'male', "title": 'Software Engineer'}
response = self.do_post(test_uri, data)
self.assertEqual(response.status_code, 201)
test_uri = test_uri + '/' + str(response.data['id'])
......@@ -258,7 +258,7 @@ class UsersApiTests(TestCase):
local_username = self.test_username + str(randint(11, 99))
data = {
'email': self.test_email, 'username': local_username, 'password': self.test_password, 'first_name': self.test_first_name,
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': 'abcd', "gender": 'male'}
'last_name': self.test_last_name, 'city': self.test_city, 'country': 'PK', 'level_of_education': 'b', 'year_of_birth': 'abcd', "gender": 'male', "title": 'Software Engineer'}
response = self.do_post(test_uri, data)
self.assertEqual(response.status_code, 201)
test_uri_1 = test_uri + '/' + str(response.data['id'])
......@@ -870,6 +870,7 @@ class UsersApiTests(TestCase):
self.assertEqual(response.data['city'], data["city"])
self.assertEqual(response.data['country'], data["country"])
self.assertEqual(response.data['gender'], data["gender"])
self.assertEqual(response.data['title'], data["title"])
self.assertEqual(
response.data['level_of_education'], data["level_of_education"])
self.assertEqual(
......
......@@ -53,6 +53,7 @@ def _generate_base_uri(request):
def _serialize_user_profile(response_data, user_profile):
"""This function serialize user profile """
response_data['title'] = user_profile.title
response_data['full_name'] = user_profile.name
response_data['city'] = user_profile.city
response_data['country'] = user_profile.country.code
......@@ -119,6 +120,7 @@ class UsersList(SecureAPIView):
* email: __required__, The unique email address for the User being created
* username: __required__, The unique username for the User being created
* password: __required__, String which matches enabled formatting constraints
* title
* first_name
* last_name
* is_active, Boolean flag controlling the User's account activation status
......@@ -134,6 +136,7 @@ class UsersList(SecureAPIView):
"email" : "honor@edx.org",
"username" : "honor",
"password" : "edx!@#",
"title" : "Software Engineer",
"first_name" : "Honor",
"last_name" : "Student",
"is_active" : False,
......@@ -169,6 +172,7 @@ class UsersList(SecureAPIView):
level_of_education = request.DATA.get('level_of_education', '')
year_of_birth = request.DATA.get('year_of_birth', '')
gender = request.DATA.get('gender', '')
title = request.DATA.get('title', '')
# enforce password complexity as an optional feature
if settings.FEATURES.get('ENFORCE_PASSWORD_POLICY', False):
try:
......@@ -213,6 +217,7 @@ class UsersList(SecureAPIView):
profile.country = country
profile.level_of_education = level_of_education
profile.gender = gender
profile.title = title
try:
profile.year_of_birth = int(year_of_birth)
......@@ -250,6 +255,7 @@ class UsersDetail(SecureAPIView):
* email: __required__, The unique email address for the User being created
* username: __required__, The unique username for the User being created
* password: __required__, String which matches enabled formatting constraints
* title
* first_name
* last_name
* is_active, Boolean flag controlling the User's account activation status
......@@ -265,6 +271,7 @@ class UsersDetail(SecureAPIView):
"email" : "honor@edx.org",
"username" : "honor",
"password" : "edx!@#",
"title" : "Software Engineer",
"first_name" : "Honor",
"last_name" : "Student",
"is_active" : False,
......@@ -442,6 +449,9 @@ class UsersDetail(SecureAPIView):
gender = request.DATA.get('gender')
if gender:
existing_user_profile.gender = gender
title = request.DATA.get('title')
if title:
existing_user_profile.title = title
existing_user_profile.save()
return Response(response_data, status=status.HTTP_200_OK)
......
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