{"action":"created","comment":{"url":"https://api.github.com/repos/swcarpentry/amy/pulls/comments/67476263","id":67476263,"diff_hunk":"@@ -221,34 +221,51 @@ class Person(AbstractBaseUser, PermissionsMixin):\n     PERSON_TASK_EXTRA_FIELDS = ('event', 'role')\n     PERSON_TASK_UPLOAD_FIELDS = PERSON_UPLOAD_FIELDS + PERSON_TASK_EXTRA_FIELDS\n \n-    personal    = models.CharField(max_length=STR_LONG)\n-    middle      = models.CharField(max_length=STR_LONG, null=True, blank=True)\n-    family      = models.CharField(max_length=STR_LONG)\n-    email       = models.CharField(max_length=STR_LONG, unique=True, null=True, blank=True)\n+    personal    = models.CharField(max_length=STR_LONG, null=False,\n+                                   verbose_name='Personal (first) name')\n+    middle      = models.CharField(max_length=STR_LONG, null=True, blank=True,\n+                                   verbose_name='Middle name')\n+    family      = models.CharField(max_length=STR_LONG, null=False,\n+                                   verbose_name='Family (last) name')\n+    email       = models.CharField(max_length=STR_LONG, unique=True, null=True, blank=True,\n+                                   verbose_name='Email address')\n     gender      = models.CharField(max_length=1, choices=GENDER_CHOICES, null=False, default=UNDISCLOSED)\n     may_contact = models.BooleanField(default=True)\n-    airport     = models.ForeignKey(Airport, null=True, blank=True, on_delete=models.PROTECT)\n-    github      = models.CharField(max_length=STR_MED, unique=True, null=True, blank=True)\n-    twitter     = models.CharField(max_length=STR_MED, unique=True, null=True, blank=True)\n-    url         = models.CharField(max_length=STR_LONG, null=True, blank=True)\n+    airport     = models.ForeignKey(Airport, null=True, blank=True, on_delete=models.PROTECT,\n+                                    verbose_name='Nearest major airport')\n+    github      = models.CharField(\n+        max_length=STR_MED, unique=True, null=True, blank=True,\n+        verbose_name='GitHub username',\n+        help_text='Please provide your username, not a numeric user ID.')","path":"workshops/models.py","position":54,"original_position":54,"commit_id":"40d8501a293624add705480dde37655437c4b3c3","original_commit_id":"40d8501a293624add705480dde37655437c4b3c3","user":{"login":"pbanaszkiewicz","id":72821,"avatar_url":"https://avatars.githubusercontent.com/u/72821?v=3","gravatar_id":"","url":"https://api.github.com/users/pbanaszkiewicz","html_url":"https://github.com/pbanaszkiewicz","followers_url":"https://api.github.com/users/pbanaszkiewicz/followers","following_url":"https://api.github.com/users/pbanaszkiewicz/following{/other_user}","gists_url":"https://api.github.com/users/pbanaszkiewicz/gists{/gist_id}","starred_url":"https://api.github.com/users/pbanaszkiewicz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbanaszkiewicz/subscriptions","organizations_url":"https://api.github.com/users/pbanaszkiewicz/orgs","repos_url":"https://api.github.com/users/pbanaszkiewicz/repos","events_url":"https://api.github.com/users/pbanaszkiewicz/events{/privacy}","received_events_url":"https://api.github.com/users/pbanaszkiewicz/received_events","type":"User","site_admin":false},"body":"Why would anyone provide a numeric user ID?","created_at":"2016-06-17T08:33:15Z","updated_at":"2016-06-17T08:33:15Z","html_url":"https://github.com/swcarpentry/amy/pull/825#discussion_r67476263","pull_request_url":"https://api.github.com/repos/swcarpentry/amy/pulls/825","_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/comments/67476263"},"html":{"href":"https://github.com/swcarpentry/amy/pull/825#discussion_r67476263"},"pull_request":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/825"}}},"pull_request":{"url":"https://api.github.com/repos/swcarpentry/amy/pulls/825","id":72964356,"html_url":"https://github.com/swcarpentry/amy/pull/825","diff_url":"https://github.com/swcarpentry/amy/pull/825.diff","patch_url":"https://github.com/swcarpentry/amy/pull/825.patch","issue_url":"https://api.github.com/repos/swcarpentry/amy/issues/825","number":825,"state":"open","locked":false,"title":"Github auth + update profile form","user":{"login":"chrismedrela","id":1645996,"avatar_url":"https://avatars.githubusercontent.com/u/1645996?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismedrela","html_url":"https://github.com/chrismedrela","followers_url":"https://api.github.com/users/chrismedrela/followers","following_url":"https://api.github.com/users/chrismedrela/following{/other_user}","gists_url":"https://api.github.com/users/chrismedrela/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismedrela/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismedrela/subscriptions","organizations_url":"https://api.github.com/users/chrismedrela/orgs","repos_url":"https://api.github.com/users/chrismedrela/repos","events_url":"https://api.github.com/users/chrismedrela/events{/privacy}","received_events_url":"https://api.github.com/users/chrismedrela/received_events","type":"User","site_admin":false},"body":"This is still in progress, not ready for review. I'll split it into multiple commits at the end, after review. \r\n\r\nIf you want to run this on your local machine, you need to:\r\n\r\n1. Install localtunnel: `npm install -g localtunnel`\r\n\r\n2. Expose your 8000 port to the world: `lt --port 8000 --subdomain amytest`. Amy will be available at https://amytest.localtunnel.me. It's important that you use `amytest` subdomain. This tool often exits abnormally, so you just need to rerun it from time to time. \r\n\r\n3. Set `SOCIAL_AUTH_GITHUB_KEY` and `SOCIAL_AUTH_GITHUB_SECRET` environment variables. Both values can be generated in Github > Settings > OAuth applications > Developer Applications. You need to set Homepage URL to `https://amytest.localtunnel.me` and Autorization Callback URL to `http://amytest.localtunnel.me/complete/github/`. Or you can use values provided by me. \r\n\r\n4. Run server: `python3 manage.py runserver 0.0.0.0:8000`.\r\n\r\n5. Open in browser: https://amytest.localtunnel.me/account/login.\r\n\r\nNote that you can login using github account only if your github account is associated with your Person record. This is represented in `UserSocialAuth` table. So if you want to login successfully you need to execute:\r\n\r\n```python\r\nfrom workshops.models import *\r\nfrom social.apps.django_app.default.models import UserSocialAuth\r\n\r\nUserSocialAuth.objects.create(provider='github', uid='<your github uid>', \r\n                              user=Person.objects.get(username='<your username>'))\r\n```\r\n\r\nYou can find out your github uid here: http://caius.github.io/github_id/\r\n\r\n@pbanaszkiewicz, deadline for version 1.6 is June 10. I think it's possible to get this branch ready (and implement update profile form) for review til June 10, but I don't think we will merge this before the deadline. Is it hard deadline?  ","created_at":"2016-06-07T23:19:01Z","updated_at":"2016-06-17T08:33:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8b1b1527efa4c55b49781dd75df0d1efbd67ef52","assignee":{"login":"pbanaszkiewicz","id":72821,"avatar_url":"https://avatars.githubusercontent.com/u/72821?v=3","gravatar_id":"","url":"https://api.github.com/users/pbanaszkiewicz","html_url":"https://github.com/pbanaszkiewicz","followers_url":"https://api.github.com/users/pbanaszkiewicz/followers","following_url":"https://api.github.com/users/pbanaszkiewicz/following{/other_user}","gists_url":"https://api.github.com/users/pbanaszkiewicz/gists{/gist_id}","starred_url":"https://api.github.com/users/pbanaszkiewicz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbanaszkiewicz/subscriptions","organizations_url":"https://api.github.com/users/pbanaszkiewicz/orgs","repos_url":"https://api.github.com/users/pbanaszkiewicz/repos","events_url":"https://api.github.com/users/pbanaszkiewicz/events{/privacy}","received_events_url":"https://api.github.com/users/pbanaszkiewicz/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/swcarpentry/amy/milestones/27","html_url":"https://github.com/swcarpentry/amy/milestones/v1.6","labels_url":"https://api.github.com/repos/swcarpentry/amy/milestones/27/labels","id":1740223,"number":27,"title":"v1.6","description":"","creator":{"login":"pbanaszkiewicz","id":72821,"avatar_url":"https://avatars.githubusercontent.com/u/72821?v=3","gravatar_id":"","url":"https://api.github.com/users/pbanaszkiewicz","html_url":"https://github.com/pbanaszkiewicz","followers_url":"https://api.github.com/users/pbanaszkiewicz/followers","following_url":"https://api.github.com/users/pbanaszkiewicz/following{/other_user}","gists_url":"https://api.github.com/users/pbanaszkiewicz/gists{/gist_id}","starred_url":"https://api.github.com/users/pbanaszkiewicz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbanaszkiewicz/subscriptions","organizations_url":"https://api.github.com/users/pbanaszkiewicz/orgs","repos_url":"https://api.github.com/users/pbanaszkiewicz/repos","events_url":"https://api.github.com/users/pbanaszkiewicz/events{/privacy}","received_events_url":"https://api.github.com/users/pbanaszkiewicz/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":24,"state":"open","created_at":"2016-04-30T19:10:20Z","updated_at":"2016-06-16T14:32:01Z","due_on":"2016-06-16T22:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/swcarpentry/amy/pulls/825/commits","review_comments_url":"https://api.github.com/repos/swcarpentry/amy/pulls/825/comments","review_comment_url":"https://api.github.com/repos/swcarpentry/amy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/swcarpentry/amy/issues/825/comments","statuses_url":"https://api.github.com/repos/swcarpentry/amy/statuses/40d8501a293624add705480dde37655437c4b3c3","head":{"label":"chrismedrela:github-login","ref":"github-login","sha":"40d8501a293624add705480dde37655437c4b3c3","user":{"login":"chrismedrela","id":1645996,"avatar_url":"https://avatars.githubusercontent.com/u/1645996?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismedrela","html_url":"https://github.com/chrismedrela","followers_url":"https://api.github.com/users/chrismedrela/followers","following_url":"https://api.github.com/users/chrismedrela/following{/other_user}","gists_url":"https://api.github.com/users/chrismedrela/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismedrela/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismedrela/subscriptions","organizations_url":"https://api.github.com/users/chrismedrela/orgs","repos_url":"https://api.github.com/users/chrismedrela/repos","events_url":"https://api.github.com/users/chrismedrela/events{/privacy}","received_events_url":"https://api.github.com/users/chrismedrela/received_events","type":"User","site_admin":false},"repo":{"id":53133626,"name":"amy","full_name":"chrismedrela/amy","owner":{"login":"chrismedrela","id":1645996,"avatar_url":"https://avatars.githubusercontent.com/u/1645996?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismedrela","html_url":"https://github.com/chrismedrela","followers_url":"https://api.github.com/users/chrismedrela/followers","following_url":"https://api.github.com/users/chrismedrela/following{/other_user}","gists_url":"https://api.github.com/users/chrismedrela/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismedrela/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismedrela/subscriptions","organizations_url":"https://api.github.com/users/chrismedrela/orgs","repos_url":"https://api.github.com/users/chrismedrela/repos","events_url":"https://api.github.com/users/chrismedrela/events{/privacy}","received_events_url":"https://api.github.com/users/chrismedrela/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chrismedrela/amy","description":"A web-based workshop administration application built using Django.","fork":true,"url":"https://api.github.com/repos/chrismedrela/amy","forks_url":"https://api.github.com/repos/chrismedrela/amy/forks","keys_url":"https://api.github.com/repos/chrismedrela/amy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chrismedrela/amy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chrismedrela/amy/teams","hooks_url":"https://api.github.com/repos/chrismedrela/amy/hooks","issue_events_url":"https://api.github.com/repos/chrismedrela/amy/issues/events{/number}","events_url":"https://api.github.com/repos/chrismedrela/amy/events","assignees_url":"https://api.github.com/repos/chrismedrela/amy/assignees{/user}","branches_url":"https://api.github.com/repos/chrismedrela/amy/branches{/branch}","tags_url":"https://api.github.com/repos/chrismedrela/amy/tags","blobs_url":"https://api.github.com/repos/chrismedrela/amy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chrismedrela/amy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chrismedrela/amy/git/refs{/sha}","trees_url":"https://api.github.com/repos/chrismedrela/amy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chrismedrela/amy/statuses/{sha}","languages_url":"https://api.github.com/repos/chrismedrela/amy/languages","stargazers_url":"https://api.github.com/repos/chrismedrela/amy/stargazers","contributors_url":"https://api.github.com/repos/chrismedrela/amy/contributors","subscribers_url":"https://api.github.com/repos/chrismedrela/amy/subscribers","subscription_url":"https://api.github.com/repos/chrismedrela/amy/subscription","commits_url":"https://api.github.com/repos/chrismedrela/amy/commits{/sha}","git_commits_url":"https://api.github.com/repos/chrismedrela/amy/git/commits{/sha}","comments_url":"https://api.github.com/repos/chrismedrela/amy/comments{/number}","issue_comment_url":"https://api.github.com/repos/chrismedrela/amy/issues/comments{/number}","contents_url":"https://api.github.com/repos/chrismedrela/amy/contents/{+path}","compare_url":"https://api.github.com/repos/chrismedrela/amy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chrismedrela/amy/merges","archive_url":"https://api.github.com/repos/chrismedrela/amy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chrismedrela/amy/downloads","issues_url":"https://api.github.com/repos/chrismedrela/amy/issues{/number}","pulls_url":"https://api.github.com/repos/chrismedrela/amy/pulls{/number}","milestones_url":"https://api.github.com/repos/chrismedrela/amy/milestones{/number}","notifications_url":"https://api.github.com/repos/chrismedrela/amy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chrismedrela/amy/labels{/name}","releases_url":"https://api.github.com/repos/chrismedrela/amy/releases{/id}","deployments_url":"https://api.github.com/repos/chrismedrela/amy/deployments","created_at":"2016-03-04T12:22:16Z","updated_at":"2016-03-04T12:22:17Z","pushed_at":"2016-06-16T14:48:27Z","git_url":"git://github.com/chrismedrela/amy.git","ssh_url":"git@github.com:chrismedrela/amy.git","clone_url":"https://github.com/chrismedrela/amy.git","svn_url":"https://github.com/chrismedrela/amy","homepage":null,"size":11158,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"swcarpentry:develop","ref":"develop","sha":"78a98734e3998a2ee0077c69b990e7df0aace315","user":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"repo":{"id":27387287,"name":"amy","full_name":"swcarpentry/amy","owner":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/swcarpentry/amy","description":"A web-based workshop administration application built using Django.","fork":false,"url":"https://api.github.com/repos/swcarpentry/amy","forks_url":"https://api.github.com/repos/swcarpentry/amy/forks","keys_url":"https://api.github.com/repos/swcarpentry/amy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/swcarpentry/amy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/swcarpentry/amy/teams","hooks_url":"https://api.github.com/repos/swcarpentry/amy/hooks","issue_events_url":"https://api.github.com/repos/swcarpentry/amy/issues/events{/number}","events_url":"https://api.github.com/repos/swcarpentry/amy/events","assignees_url":"https://api.github.com/repos/swcarpentry/amy/assignees{/user}","branches_url":"https://api.github.com/repos/swcarpentry/amy/branches{/branch}","tags_url":"https://api.github.com/repos/swcarpentry/amy/tags","blobs_url":"https://api.github.com/repos/swcarpentry/amy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/swcarpentry/amy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/swcarpentry/amy/git/refs{/sha}","trees_url":"https://api.github.com/repos/swcarpentry/amy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/swcarpentry/amy/statuses/{sha}","languages_url":"https://api.github.com/repos/swcarpentry/amy/languages","stargazers_url":"https://api.github.com/repos/swcarpentry/amy/stargazers","contributors_url":"https://api.github.com/repos/swcarpentry/amy/contributors","subscribers_url":"https://api.github.com/repos/swcarpentry/amy/subscribers","subscription_url":"https://api.github.com/repos/swcarpentry/amy/subscription","commits_url":"https://api.github.com/repos/swcarpentry/amy/commits{/sha}","git_commits_url":"https://api.github.com/repos/swcarpentry/amy/git/commits{/sha}","comments_url":"https://api.github.com/repos/swcarpentry/amy/comments{/number}","issue_comment_url":"https://api.github.com/repos/swcarpentry/amy/issues/comments{/number}","contents_url":"https://api.github.com/repos/swcarpentry/amy/contents/{+path}","compare_url":"https://api.github.com/repos/swcarpentry/amy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/swcarpentry/amy/merges","archive_url":"https://api.github.com/repos/swcarpentry/amy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/swcarpentry/amy/downloads","issues_url":"https://api.github.com/repos/swcarpentry/amy/issues{/number}","pulls_url":"https://api.github.com/repos/swcarpentry/amy/pulls{/number}","milestones_url":"https://api.github.com/repos/swcarpentry/amy/milestones{/number}","notifications_url":"https://api.github.com/repos/swcarpentry/amy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/swcarpentry/amy/labels{/name}","releases_url":"https://api.github.com/repos/swcarpentry/amy/releases{/id}","deployments_url":"https://api.github.com/repos/swcarpentry/amy/deployments","created_at":"2014-12-01T16:07:14Z","updated_at":"2016-06-09T17:41:43Z","pushed_at":"2016-06-16T14:48:28Z","git_url":"git://github.com/swcarpentry/amy.git","ssh_url":"git@github.com:swcarpentry/amy.git","clone_url":"https://github.com/swcarpentry/amy.git","svn_url":"https://github.com/swcarpentry/amy","homepage":null,"size":13092,"stargazers_count":30,"watchers_count":30,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":38,"mirror_url":null,"open_issues_count":54,"forks":38,"open_issues":54,"watchers":30,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/825"},"html":{"href":"https://github.com/swcarpentry/amy/pull/825"},"issue":{"href":"https://api.github.com/repos/swcarpentry/amy/issues/825"},"comments":{"href":"https://api.github.com/repos/swcarpentry/amy/issues/825/comments"},"review_comments":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/825/comments"},"review_comment":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/825/commits"},"statuses":{"href":"https://api.github.com/repos/swcarpentry/amy/statuses/40d8501a293624add705480dde37655437c4b3c3"}}}}
{"actor":{"display_login":"pbanaszkiewicz"}}