{"action":"created","comment":{"url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/comments/79912010","id":79912010,"diff_hunk":"@@ -32,36 +61,27 @@ class UserSerializer(JSONAPISerializer):\n     date_registered = HideIfDisabled(ser.DateTimeField(read_only=True))\n     active = HideIfDisabled(ser.BooleanField(read_only=True, source='is_active'))\n \n-    # Social Fields are broken out to get around DRF complex object bug and to make API updating more user friendly.\n-    github = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.github',\n-                                                          allow_blank=True, help_text='GitHub Handle'), required=False, source='social.github')))\n-    scholar = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.scholar',\n-                                                           allow_blank=True, help_text='Google Scholar Account'), required=False, source='social.scholar')))\n-    personal_website = DevOnly(HideIfDisabled(AllowMissing(ser.URLField(required=False, source='social.personal',\n-                                                                   allow_blank=True, help_text='Personal Website'), required=False, source='social.personal')))\n-    twitter = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.twitter',\n-                                                           allow_blank=True, help_text='Twitter Handle'), required=False, source='social.twitter')))\n-    linkedin = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.linkedIn',\n-                                                            allow_blank=True, help_text='LinkedIn Account'), required=False, source='social.linkedIn')))\n-    impactstory = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.impactStory',\n-                                                               allow_blank=True, help_text='ImpactStory Account'), required=False, source='social.impactStory')))\n-    orcid = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.orcid',\n-                                                         allow_blank=True, help_text='ORCID'), required=False, source='social.orcid')))\n-    researcherid = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.researcherId',\n-                                                      allow_blank=True, help_text='ResearcherId Account'), required=False, source='social.researcherId')))\n-    researchgate = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.researchGate',\n-                                                      allow_blank=True, help_text='ResearchGate Account'), required=False, source='social.researchGate')))\n-    academia_institution = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.academiaInstitution',\n-                                                      allow_blank=True, help_text='AcademiaInstitution Field'), required=False, source='social.academiaInstitution')))\n-    academia_profile_id = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.academiaProfileID',\n-                                                      allow_blank=True, help_text='AcademiaProfileID Field'), required=False, source='social.academiaProfileID')))\n-    baiduscholar = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.baiduScholar',\n-                                                           allow_blank=True, help_text='Baidu Scholar Account'), required=False, source='social.baiduScholar')))\n-    ssrn = DevOnly(HideIfDisabled(AllowMissing(ser.CharField(required=False, source='social.ssrn',\n-                                                           allow_blank=True, help_text='SSRN Account'), required=False, source='social.ssrn')))\n     timezone = HideIfDisabled(ser.CharField(required=False, help_text=\"User's timezone, e.g. 'Etc/UTC\"))\n     locale = HideIfDisabled(ser.CharField(required=False, help_text=\"User's locale, e.g.  'en_US'\"))\n \n+    social = HideIfDisabled(ListLinksField(\n+        {\n+            'personal_website': 'personal_website_url',","path":"api/users/serializers.py","position":86,"original_position":86,"commit_id":"0df65c62d8ac81c6dab7d415e410f5ce46bcc0aa","original_commit_id":"0df65c62d8ac81c6dab7d415e410f5ce46bcc0aa","user":{"login":"brianjgeiger","id":6599111,"avatar_url":"https://avatars.githubusercontent.com/u/6599111?v=3","gravatar_id":"","url":"https://api.github.com/users/brianjgeiger","html_url":"https://github.com/brianjgeiger","followers_url":"https://api.github.com/users/brianjgeiger/followers","following_url":"https://api.github.com/users/brianjgeiger/following{/other_user}","gists_url":"https://api.github.com/users/brianjgeiger/gists{/gist_id}","starred_url":"https://api.github.com/users/brianjgeiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianjgeiger/subscriptions","organizations_url":"https://api.github.com/users/brianjgeiger/orgs","repos_url":"https://api.github.com/users/brianjgeiger/repos","events_url":"https://api.github.com/users/brianjgeiger/events{/privacy}","received_events_url":"https://api.github.com/users/brianjgeiger/received_events","type":"User","site_admin":false},"body":"Okay, what if we do this:\r\n\r\n```json\r\n{\r\n    \"data\": {\r\n            \"attributes\": {\r\n                \"social\": {\r\n                    \"github\": [\"brianjgeiger\",\"centerforopenscience\"],\r\n                    \"twitter\": [\"thefoodgeek\",\"awesomeography\"],\r\n                    \"personal_website\":[\"https://thefoodgeek.com/\",\"https://awesomeography.com/\"],\r\n                    [...]\r\n                }\r\n            }\r\n        }\r\n}\r\n```\r\nThis way we don't have to do a lot of validation on things. If we want, we could go crazy and give a usage string, or we could just do it in the docs. If we did it inline, it would be something like, `'github': {'items':['brianjgeiger','centerforopenscience'], 'usage': 'https://github.com/{}/},`. This way it can just get updated in one place if, say, linkedin changes their URLs for profiles or something.","created_at":"2016-09-21T19:20:56Z","updated_at":"2016-09-21T19:20:57Z","html_url":"https://github.com/CenterForOpenScience/osf.io/pull/6249#discussion_r79912010","pull_request_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249","_links":{"self":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/comments/79912010"},"html":{"href":"https://github.com/CenterForOpenScience/osf.io/pull/6249#discussion_r79912010"},"pull_request":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249"}}},"pull_request":{"url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249","id":83254491,"html_url":"https://github.com/CenterForOpenScience/osf.io/pull/6249","diff_url":"https://github.com/CenterForOpenScience/osf.io/pull/6249.diff","patch_url":"https://github.com/CenterForOpenScience/osf.io/pull/6249.patch","issue_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/6249","number":6249,"state":"open","locked":false,"title":"Finish user serialization[#OSF-6917]","user":{"login":"chennan47","id":4974056,"avatar_url":"https://avatars.githubusercontent.com/u/4974056?v=3","gravatar_id":"","url":"https://api.github.com/users/chennan47","html_url":"https://github.com/chennan47","followers_url":"https://api.github.com/users/chennan47/followers","following_url":"https://api.github.com/users/chennan47/following{/other_user}","gists_url":"https://api.github.com/users/chennan47/gists{/gist_id}","starred_url":"https://api.github.com/users/chennan47/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chennan47/subscriptions","organizations_url":"https://api.github.com/users/chennan47/orgs","repos_url":"https://api.github.com/users/chennan47/repos","events_url":"https://api.github.com/users/chennan47/events{/privacy}","received_events_url":"https://api.github.com/users/chennan47/received_events","type":"User","site_admin":false},"body":"<!-- Before submit your Pull Request, make sure you picked\r\n     the right branch:\r\n\r\n     - For hotfixes, select \"master\" as the target branch\r\n     - For new features, select \"develop\" as the target branch\r\n     - For release feature fixes, select the relevant release branch (release/X.Y.Z) as the target branch -->\r\n\r\n## Purpose\r\nFix user's social serialization by adding social infomation.\r\n\r\n<!-- Describe the purpose of your changes -->\r\n\r\n## Changes\r\nAfter change:\r\nIn user collection:\r\n![screen shot 2016-09-06 at 1 21 16 pm](https://cloud.githubusercontent.com/assets/4974056/18283765/d3cc411a-7434-11e6-95be-4ec27728ad47.png)\r\n\r\n\r\n\r\n\r\n\r\n<!-- Briefly describe or list your changes  -->\r\n\r\n## Side effects\r\n\r\n<!--Any possible side effects? -->\r\n\r\n\r\n## Ticket\r\n\r\n<!-- Link to JIRA ticket, if applicable e.g. https://openscience.atlassian.net/browse/OSF-1234 -->\r\nhttps://openscience.atlassian.net/browse/OSF-6917","created_at":"2016-08-30T11:34:55Z","updated_at":"2016-09-21T19:20:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e80512e2defe3c4a31eea61aa972abfea35675c1","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249/commits","review_comments_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249/comments","review_comment_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/6249/comments","statuses_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/statuses/0df65c62d8ac81c6dab7d415e410f5ce46bcc0aa","head":{"label":"chennan47:feature/user_serialization","ref":"feature/user_serialization","sha":"0df65c62d8ac81c6dab7d415e410f5ce46bcc0aa","user":{"login":"chennan47","id":4974056,"avatar_url":"https://avatars.githubusercontent.com/u/4974056?v=3","gravatar_id":"","url":"https://api.github.com/users/chennan47","html_url":"https://github.com/chennan47","followers_url":"https://api.github.com/users/chennan47/followers","following_url":"https://api.github.com/users/chennan47/following{/other_user}","gists_url":"https://api.github.com/users/chennan47/gists{/gist_id}","starred_url":"https://api.github.com/users/chennan47/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chennan47/subscriptions","organizations_url":"https://api.github.com/users/chennan47/orgs","repos_url":"https://api.github.com/users/chennan47/repos","events_url":"https://api.github.com/users/chennan47/events{/privacy}","received_events_url":"https://api.github.com/users/chennan47/received_events","type":"User","site_admin":false},"repo":{"id":26927567,"name":"osf.io","full_name":"chennan47/osf.io","owner":{"login":"chennan47","id":4974056,"avatar_url":"https://avatars.githubusercontent.com/u/4974056?v=3","gravatar_id":"","url":"https://api.github.com/users/chennan47","html_url":"https://github.com/chennan47","followers_url":"https://api.github.com/users/chennan47/followers","following_url":"https://api.github.com/users/chennan47/following{/other_user}","gists_url":"https://api.github.com/users/chennan47/gists{/gist_id}","starred_url":"https://api.github.com/users/chennan47/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chennan47/subscriptions","organizations_url":"https://api.github.com/users/chennan47/orgs","repos_url":"https://api.github.com/users/chennan47/repos","events_url":"https://api.github.com/users/chennan47/events{/privacy}","received_events_url":"https://api.github.com/users/chennan47/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chennan47/osf.io","description":"Facilitating Open Science","fork":true,"url":"https://api.github.com/repos/chennan47/osf.io","forks_url":"https://api.github.com/repos/chennan47/osf.io/forks","keys_url":"https://api.github.com/repos/chennan47/osf.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chennan47/osf.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chennan47/osf.io/teams","hooks_url":"https://api.github.com/repos/chennan47/osf.io/hooks","issue_events_url":"https://api.github.com/repos/chennan47/osf.io/issues/events{/number}","events_url":"https://api.github.com/repos/chennan47/osf.io/events","assignees_url":"https://api.github.com/repos/chennan47/osf.io/assignees{/user}","branches_url":"https://api.github.com/repos/chennan47/osf.io/branches{/branch}","tags_url":"https://api.github.com/repos/chennan47/osf.io/tags","blobs_url":"https://api.github.com/repos/chennan47/osf.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chennan47/osf.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chennan47/osf.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/chennan47/osf.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chennan47/osf.io/statuses/{sha}","languages_url":"https://api.github.com/repos/chennan47/osf.io/languages","stargazers_url":"https://api.github.com/repos/chennan47/osf.io/stargazers","contributors_url":"https://api.github.com/repos/chennan47/osf.io/contributors","subscribers_url":"https://api.github.com/repos/chennan47/osf.io/subscribers","subscription_url":"https://api.github.com/repos/chennan47/osf.io/subscription","commits_url":"https://api.github.com/repos/chennan47/osf.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/chennan47/osf.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/chennan47/osf.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/chennan47/osf.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/chennan47/osf.io/contents/{+path}","compare_url":"https://api.github.com/repos/chennan47/osf.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chennan47/osf.io/merges","archive_url":"https://api.github.com/repos/chennan47/osf.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chennan47/osf.io/downloads","issues_url":"https://api.github.com/repos/chennan47/osf.io/issues{/number}","pulls_url":"https://api.github.com/repos/chennan47/osf.io/pulls{/number}","milestones_url":"https://api.github.com/repos/chennan47/osf.io/milestones{/number}","notifications_url":"https://api.github.com/repos/chennan47/osf.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chennan47/osf.io/labels{/name}","releases_url":"https://api.github.com/repos/chennan47/osf.io/releases{/id}","deployments_url":"https://api.github.com/repos/chennan47/osf.io/deployments","created_at":"2014-11-20T19:12:43Z","updated_at":"2015-05-21T19:36:54Z","pushed_at":"2016-09-20T15:53:06Z","git_url":"git://github.com/chennan47/osf.io.git","ssh_url":"git@github.com:chennan47/osf.io.git","clone_url":"https://github.com/chennan47/osf.io.git","svn_url":"https://github.com/chennan47/osf.io","homepage":"http://osf.io","size":134880,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"CenterForOpenScience:develop","ref":"develop","sha":"023fad7b585f2060e89ca21dd9aefa0d9f73314a","user":{"login":"CenterForOpenScience","id":3344584,"avatar_url":"https://avatars.githubusercontent.com/u/3344584?v=3","gravatar_id":"","url":"https://api.github.com/users/CenterForOpenScience","html_url":"https://github.com/CenterForOpenScience","followers_url":"https://api.github.com/users/CenterForOpenScience/followers","following_url":"https://api.github.com/users/CenterForOpenScience/following{/other_user}","gists_url":"https://api.github.com/users/CenterForOpenScience/gists{/gist_id}","starred_url":"https://api.github.com/users/CenterForOpenScience/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CenterForOpenScience/subscriptions","organizations_url":"https://api.github.com/users/CenterForOpenScience/orgs","repos_url":"https://api.github.com/users/CenterForOpenScience/repos","events_url":"https://api.github.com/users/CenterForOpenScience/events{/privacy}","received_events_url":"https://api.github.com/users/CenterForOpenScience/received_events","type":"Organization","site_admin":false},"repo":{"id":10199599,"name":"osf.io","full_name":"CenterForOpenScience/osf.io","owner":{"login":"CenterForOpenScience","id":3344584,"avatar_url":"https://avatars.githubusercontent.com/u/3344584?v=3","gravatar_id":"","url":"https://api.github.com/users/CenterForOpenScience","html_url":"https://github.com/CenterForOpenScience","followers_url":"https://api.github.com/users/CenterForOpenScience/followers","following_url":"https://api.github.com/users/CenterForOpenScience/following{/other_user}","gists_url":"https://api.github.com/users/CenterForOpenScience/gists{/gist_id}","starred_url":"https://api.github.com/users/CenterForOpenScience/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CenterForOpenScience/subscriptions","organizations_url":"https://api.github.com/users/CenterForOpenScience/orgs","repos_url":"https://api.github.com/users/CenterForOpenScience/repos","events_url":"https://api.github.com/users/CenterForOpenScience/events{/privacy}","received_events_url":"https://api.github.com/users/CenterForOpenScience/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CenterForOpenScience/osf.io","description":"Facilitating Open Science","fork":false,"url":"https://api.github.com/repos/CenterForOpenScience/osf.io","forks_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/forks","keys_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/teams","hooks_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/hooks","issue_events_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/events{/number}","events_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/events","assignees_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/assignees{/user}","branches_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/branches{/branch}","tags_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/tags","blobs_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/statuses/{sha}","languages_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/languages","stargazers_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/stargazers","contributors_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/contributors","subscribers_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/subscribers","subscription_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/subscription","commits_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/contents/{+path}","compare_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/merges","archive_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/downloads","issues_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues{/number}","pulls_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls{/number}","milestones_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/milestones{/number}","notifications_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/labels{/name}","releases_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/releases{/id}","deployments_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/deployments","created_at":"2013-05-21T15:53:37Z","updated_at":"2016-09-20T01:45:10Z","pushed_at":"2016-09-21T19:15:02Z","git_url":"git://github.com/CenterForOpenScience/osf.io.git","ssh_url":"git@github.com:CenterForOpenScience/osf.io.git","clone_url":"https://github.com/CenterForOpenScience/osf.io.git","svn_url":"https://github.com/CenterForOpenScience/osf.io","homepage":"http://osf.io","size":269417,"stargazers_count":262,"watchers_count":262,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":202,"mirror_url":null,"open_issues_count":202,"forks":202,"open_issues":202,"watchers":262,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249"},"html":{"href":"https://github.com/CenterForOpenScience/osf.io/pull/6249"},"issue":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/6249"},"comments":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/6249/comments"},"review_comments":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249/comments"},"review_comment":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/6249/commits"},"statuses":{"href":"https://api.github.com/repos/CenterForOpenScience/osf.io/statuses/0df65c62d8ac81c6dab7d415e410f5ce46bcc0aa"}}}}
{"actor":{"display_login":"brianjgeiger"}}