{"action":"created","comment":{"url":"https://api.github.com/repos/edx/edx-platform/pulls/comments/39282910","id":39282910,"diff_hunk":"@@ -81,7 +74,38 @@ def team_post_save_callback(sender, instance, **kwargs):  # pylint: disable=unus\n                 )\n \n \n-class TeamsDashboardView(View):\n+class TeamAPIPagination(pagination.PageNumberPagination):","path":"lms/djangoapps/teams/views.py","position":48,"original_position":48,"commit_id":"33692e3475d917e72eacf92801f98bda777e0ff5","original_commit_id":"33692e3475d917e72eacf92801f98bda777e0ff5","user":{"login":"andy-armstrong","id":5985072,"avatar_url":"https://avatars.githubusercontent.com/u/5985072?v=3","gravatar_id":"","url":"https://api.github.com/users/andy-armstrong","html_url":"https://github.com/andy-armstrong","followers_url":"https://api.github.com/users/andy-armstrong/followers","following_url":"https://api.github.com/users/andy-armstrong/following{/other_user}","gists_url":"https://api.github.com/users/andy-armstrong/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-armstrong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-armstrong/subscriptions","organizations_url":"https://api.github.com/users/andy-armstrong/orgs","repos_url":"https://api.github.com/users/andy-armstrong/repos","events_url":"https://api.github.com/users/andy-armstrong/events{/privacy}","received_events_url":"https://api.github.com/users/andy-armstrong/received_events","type":"User","site_admin":false},"body":"I'm not sure why the Team API should use a different pagination schema than our other REST APIs. It seems to me that they all should return a count, the current page etc, so that clients can show details about the page being shown. Note that we built a shared Backbone pagination component that knows how to interpret these results, so it would be really beneficial if all of our APIs returned the same details. It would make documenting our APIs easier too.\r\n\r\nCan this be made into a shared base class that we use for all our REST APIs? Is there something team-specific about it? Our intention was just to follow the REST API conventions and not to implement something unique here.","created_at":"2015-09-11T15:28:52Z","updated_at":"2015-09-11T15:28:52Z","html_url":"https://github.com/edx/edx-platform/pull/9685#discussion_r39282910","pull_request_url":"https://api.github.com/repos/edx/edx-platform/pulls/9685","_links":{"self":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/comments/39282910"},"html":{"href":"https://github.com/edx/edx-platform/pull/9685#discussion_r39282910"},"pull_request":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/9685"}}},"pull_request":{"url":"https://api.github.com/repos/edx/edx-platform/pulls/9685","id":44606200,"html_url":"https://github.com/edx/edx-platform/pull/9685","diff_url":"https://github.com/edx/edx-platform/pull/9685.diff","patch_url":"https://github.com/edx/edx-platform/pull/9685.patch","issue_url":"https://api.github.com/repos/edx/edx-platform/issues/9685","number":9685,"state":"open","locked":false,"title":"Upgrade djangorestframework to v3.1","user":{"login":"wedaly","id":2948394,"avatar_url":"https://avatars.githubusercontent.com/u/2948394?v=3","gravatar_id":"","url":"https://api.github.com/users/wedaly","html_url":"https://github.com/wedaly","followers_url":"https://api.github.com/users/wedaly/followers","following_url":"https://api.github.com/users/wedaly/following{/other_user}","gists_url":"https://api.github.com/users/wedaly/gists{/gist_id}","starred_url":"https://api.github.com/users/wedaly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wedaly/subscriptions","organizations_url":"https://api.github.com/users/wedaly/orgs","repos_url":"https://api.github.com/users/wedaly/repos","events_url":"https://api.github.com/users/wedaly/events{/privacy}","received_events_url":"https://api.github.com/users/wedaly/received_events","type":"User","site_admin":false},"body":"Upgrade django rest framework to v3.1.  JIRA: [TNL-2812](https://openedx.atlassian.net/browse/TNL-2812)\r\n\r\n# Changes\r\n* Upgrade edx-submissions\r\n* Upgrade edx-ora2\r\n* Upgrade edx-val\r\n* Upgrade edx-proctoring\r\n* Update all edx-platform code that depends on DRF, including:\r\n  - auth_exchange\r\n  - cors_csrf\r\n  - embargo\r\n  - enrollment\r\n  - util\r\n  - commerce\r\n  - course_structure\r\n  - discussion_api\r\n  - mobile_api\r\n  - notifier_api\r\n  - teams\r\n  - credit\r\n  - profile_images\r\n  - user_api\r\n  - lib/api (OAuth2 and pagination)\r\n\r\n# Related PRs\r\n\r\nhttps://github.com/edx/edx-submissions/pull/20\r\nhttps://github.com/edx/edx-ora2/pull/718\r\nhttps://github.com/edx/edx-val/pull/48\r\nhttps://github.com/edx/edx-proctoring/pull/131\r\n\r\nPlease review these related PRs along with this PR.  I'm planning to merge them right before merging the edx-platform PR.\r\n\r\n# Reviewers\r\n* Solutions: edx-proctoring, notifier app @chrisndodge \r\n* Mobile: mobile_api, edx-val, discussions, course_structure @nasthagiri \r\n* T&L: ORA2, submissions @symbolist\r\n* T&L: discussion API, teams, profile images, user api @andy-armstrong \r\n* Analytics: course structure API @mulby \r\n* E-Commerce: auth_exchange, cors_csrf, embargo, enrollment, commerce, credit @clintonb \r\n\r\nThis page may be helpful for understanding the reasoning behind these (many) changes: https://openedx.atlassian.net/wiki/display/TNL/Django+Rest+Framework+Upgrade\r\n\r\nSandbox for testing: TODO","created_at":"2015-09-09T22:02:22Z","updated_at":"2015-09-11T15:28:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed9db88aa0594d3cec826b627020f65a0c1dcf96","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/edx/edx-platform/pulls/9685/commits","review_comments_url":"https://api.github.com/repos/edx/edx-platform/pulls/9685/comments","review_comment_url":"https://api.github.com/repos/edx/edx-platform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/edx/edx-platform/issues/9685/comments","statuses_url":"https://api.github.com/repos/edx/edx-platform/statuses/33692e3475d917e72eacf92801f98bda777e0ff5","head":{"label":"edx:will/update-drf-squash-and-rebase","ref":"will/update-drf-squash-and-rebase","sha":"33692e3475d917e72eacf92801f98bda777e0ff5","user":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":10391073,"name":"edx-platform","full_name":"edx/edx-platform","owner":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/edx-platform","description":"The Open edX platform, the software that powers edX!","fork":false,"url":"https://api.github.com/repos/edx/edx-platform","forks_url":"https://api.github.com/repos/edx/edx-platform/forks","keys_url":"https://api.github.com/repos/edx/edx-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/edx-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/edx-platform/teams","hooks_url":"https://api.github.com/repos/edx/edx-platform/hooks","issue_events_url":"https://api.github.com/repos/edx/edx-platform/issues/events{/number}","events_url":"https://api.github.com/repos/edx/edx-platform/events","assignees_url":"https://api.github.com/repos/edx/edx-platform/assignees{/user}","branches_url":"https://api.github.com/repos/edx/edx-platform/branches{/branch}","tags_url":"https://api.github.com/repos/edx/edx-platform/tags","blobs_url":"https://api.github.com/repos/edx/edx-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/edx-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/edx-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/edx-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/edx-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/edx-platform/languages","stargazers_url":"https://api.github.com/repos/edx/edx-platform/stargazers","contributors_url":"https://api.github.com/repos/edx/edx-platform/contributors","subscribers_url":"https://api.github.com/repos/edx/edx-platform/subscribers","subscription_url":"https://api.github.com/repos/edx/edx-platform/subscription","commits_url":"https://api.github.com/repos/edx/edx-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/edx-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/edx-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/edx-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/edx-platform/contents/{+path}","compare_url":"https://api.github.com/repos/edx/edx-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/edx-platform/merges","archive_url":"https://api.github.com/repos/edx/edx-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/edx-platform/downloads","issues_url":"https://api.github.com/repos/edx/edx-platform/issues{/number}","pulls_url":"https://api.github.com/repos/edx/edx-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/edx-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/edx-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/edx-platform/labels{/name}","releases_url":"https://api.github.com/repos/edx/edx-platform/releases{/id}","created_at":"2013-05-30T20:20:38Z","updated_at":"2015-09-11T00:19:16Z","pushed_at":"2015-09-11T15:22:49Z","git_url":"git://github.com/edx/edx-platform.git","ssh_url":"git@github.com:edx/edx-platform.git","clone_url":"https://github.com/edx/edx-platform.git","svn_url":"https://github.com/edx/edx-platform","homepage":"http://open.edx.org/","size":2109698,"stargazers_count":2114,"watchers_count":2114,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1263,"mirror_url":null,"open_issues_count":164,"forks":1263,"open_issues":164,"watchers":2114,"default_branch":"master"}},"base":{"label":"edx:master","ref":"master","sha":"f8da90e5332578eaf13d6129a73e9160d1ae5338","user":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":10391073,"name":"edx-platform","full_name":"edx/edx-platform","owner":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/edx-platform","description":"The Open edX platform, the software that powers edX!","fork":false,"url":"https://api.github.com/repos/edx/edx-platform","forks_url":"https://api.github.com/repos/edx/edx-platform/forks","keys_url":"https://api.github.com/repos/edx/edx-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/edx-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/edx-platform/teams","hooks_url":"https://api.github.com/repos/edx/edx-platform/hooks","issue_events_url":"https://api.github.com/repos/edx/edx-platform/issues/events{/number}","events_url":"https://api.github.com/repos/edx/edx-platform/events","assignees_url":"https://api.github.com/repos/edx/edx-platform/assignees{/user}","branches_url":"https://api.github.com/repos/edx/edx-platform/branches{/branch}","tags_url":"https://api.github.com/repos/edx/edx-platform/tags","blobs_url":"https://api.github.com/repos/edx/edx-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/edx-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/edx-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/edx-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/edx-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/edx-platform/languages","stargazers_url":"https://api.github.com/repos/edx/edx-platform/stargazers","contributors_url":"https://api.github.com/repos/edx/edx-platform/contributors","subscribers_url":"https://api.github.com/repos/edx/edx-platform/subscribers","subscription_url":"https://api.github.com/repos/edx/edx-platform/subscription","commits_url":"https://api.github.com/repos/edx/edx-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/edx-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/edx-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/edx-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/edx-platform/contents/{+path}","compare_url":"https://api.github.com/repos/edx/edx-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/edx-platform/merges","archive_url":"https://api.github.com/repos/edx/edx-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/edx-platform/downloads","issues_url":"https://api.github.com/repos/edx/edx-platform/issues{/number}","pulls_url":"https://api.github.com/repos/edx/edx-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/edx-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/edx-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/edx-platform/labels{/name}","releases_url":"https://api.github.com/repos/edx/edx-platform/releases{/id}","created_at":"2013-05-30T20:20:38Z","updated_at":"2015-09-11T00:19:16Z","pushed_at":"2015-09-11T15:22:49Z","git_url":"git://github.com/edx/edx-platform.git","ssh_url":"git@github.com:edx/edx-platform.git","clone_url":"https://github.com/edx/edx-platform.git","svn_url":"https://github.com/edx/edx-platform","homepage":"http://open.edx.org/","size":2109698,"stargazers_count":2114,"watchers_count":2114,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1263,"mirror_url":null,"open_issues_count":164,"forks":1263,"open_issues":164,"watchers":2114,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/9685"},"html":{"href":"https://github.com/edx/edx-platform/pull/9685"},"issue":{"href":"https://api.github.com/repos/edx/edx-platform/issues/9685"},"comments":{"href":"https://api.github.com/repos/edx/edx-platform/issues/9685/comments"},"review_comments":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/9685/comments"},"review_comment":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/edx/edx-platform/pulls/9685/commits"},"statuses":{"href":"https://api.github.com/repos/edx/edx-platform/statuses/33692e3475d917e72eacf92801f98bda777e0ff5"}}}}