{"action":"created","comment":{"url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/comments/61367945","id":61367945,"diff_hunk":"@@ -60,3 +64,176 @@ def test_get_assignment_aggregates(self):\n             'total_students': 13,\n         }\n         self.assertDictEqual(dict(sums), expected_sums)\n+\n+    @ddt.unpack\n+    @ddt.data(\n+        ('Assignment1', 29, {\n+            'total_upvoted': 3,\n+            'total_wrong_to_right': 2,\n+            'total_right_to_wrong': 3,\n+            }, {\n+                'upvoted': [\n+                    {\n+                        'count': 10,\n+                        'rationale': models.Answer.objects.get(id=855),","path":"peerinst/tests/test_admin_views.py","position":null,"original_position":31,"commit_id":"2a84f483011c325b393a4d0a4ab46ad9c13b05bb","original_commit_id":"1191cea2af37032acdab2227eed74100b78e9b5d","user":{"login":"pomegranited","id":7556571,"avatar_url":"https://avatars.githubusercontent.com/u/7556571?v=3","gravatar_id":"","url":"https://api.github.com/users/pomegranited","html_url":"https://github.com/pomegranited","followers_url":"https://api.github.com/users/pomegranited/followers","following_url":"https://api.github.com/users/pomegranited/following{/other_user}","gists_url":"https://api.github.com/users/pomegranited/gists{/gist_id}","starred_url":"https://api.github.com/users/pomegranited/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pomegranited/subscriptions","organizations_url":"https://api.github.com/users/pomegranited/orgs","repos_url":"https://api.github.com/users/pomegranited/repos","events_url":"https://api.github.com/users/pomegranited/events{/privacy}","received_events_url":"https://api.github.com/users/pomegranited/received_events","type":"User","site_admin":false},"body":"Gah, thanks for finding that!  Fixed with [ea0c2d8](https://github.com/open-craft/dalite-ng/pull/43/commits/ea0c2d894ea102a20b3cbe72989e48dfbe24ec94)","created_at":"2016-04-28T02:58:58Z","updated_at":"2016-04-28T02:58:58Z","html_url":"https://github.com/open-craft/dalite-ng/pull/43#discussion_r61367945","pull_request_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43","_links":{"self":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/comments/61367945"},"html":{"href":"https://github.com/open-craft/dalite-ng/pull/43#discussion_r61367945"},"pull_request":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43"}}},"pull_request":{"url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43","id":67846485,"html_url":"https://github.com/open-craft/dalite-ng/pull/43","diff_url":"https://github.com/open-craft/dalite-ng/pull/43.diff","patch_url":"https://github.com/open-craft/dalite-ng/pull/43.patch","issue_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/43","number":43,"state":"open","locked":false,"title":"Shows top rationales for a given question","user":{"login":"pomegranited","id":7556571,"avatar_url":"https://avatars.githubusercontent.com/u/7556571?v=3","gravatar_id":"","url":"https://api.github.com/users/pomegranited","html_url":"https://github.com/pomegranited","followers_url":"https://api.github.com/users/pomegranited/followers","following_url":"https://api.github.com/users/pomegranited/following{/other_user}","gists_url":"https://api.github.com/users/pomegranited/gists{/gist_id}","starred_url":"https://api.github.com/users/pomegranited/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pomegranited/subscriptions","organizations_url":"https://api.github.com/users/pomegranited/orgs","repos_url":"https://api.github.com/users/pomegranited/repos","events_url":"https://api.github.com/users/pomegranited/events{/privacy}","received_events_url":"https://api.github.com/users/pomegranited/received_events","type":"User","site_admin":false},"body":"* Adds peerinst.admin_views.get_question_rationale_aggregates() and unit tests\r\n* Adds peerinst.admin_views.QuestionRationaleView to display rationale, using\r\n  question_rationales.html template\r\n* Adds link to the individual questions table in the assignment results admin page\r\n\r\n**JIRA tickets**: [OC-1536](https://tasks.opencraft.com/browse/OC-1536)\r\n\r\n**Screenshots**:\r\n![screen shot 2016-04-26 at 6 06 22 pm](https://cloud.githubusercontent.com/assets/7556571/14811892/aa9b872e-0bd9-11e6-8e46-a2f79a8f2148.png)\r\n![screen shot 2016-04-26 at 6 06 13 pm](https://cloud.githubusercontent.com/assets/7556571/14811897/b0d91566-0bd9-11e6-94db-7417e2819466.png)\r\n\r\n**Testing instructions**:\r\n\r\n1. Follow instructions in [README](https://github.com/open-craft/dalite-ng/blob/jill/fix-readme/README.md) to set up development environment and create a superuser.\r\n1. [Run tests and verify coverage](https://github.com/open-craft/dalite-ng/blob/jill/fix-readme/README.md#running-the-tests)\r\n1. Optionally load the test fixture data, or create your own assignments, questions, and responses.\r\n```\r\n./manage.py loaddata peerinst/fixtures/peerinst_test_data.yaml\r\n``` \r\n1. Run the development server\r\n```\r\n./manage.py runserver\r\n``` \r\n1. Navigate to http://127.0.0.1:8000/admin/ and click on an assignment under 'Student progress by assignment'.  From there, find the question table, and click on 'rationales' to see the new report.\r\n\r\n**Reviewers**\r\n- [ ] OpenCraft reviewer TBD","created_at":"2016-04-26T08:38:01Z","updated_at":"2016-04-28T02:58:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"228fe3554a411b8696a567aacad8f0313b669cb5","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43/commits","review_comments_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43/comments","review_comment_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls/comments{/number}","comments_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/43/comments","statuses_url":"https://api.github.com/repos/open-craft/dalite-ng/statuses/2a84f483011c325b393a4d0a4ab46ad9c13b05bb","head":{"label":"open-craft:jill/top-rationales","ref":"jill/top-rationales","sha":"2a84f483011c325b393a4d0a4ab46ad9c13b05bb","user":{"login":"open-craft","id":7414786,"avatar_url":"https://avatars.githubusercontent.com/u/7414786?v=3","gravatar_id":"","url":"https://api.github.com/users/open-craft","html_url":"https://github.com/open-craft","followers_url":"https://api.github.com/users/open-craft/followers","following_url":"https://api.github.com/users/open-craft/following{/other_user}","gists_url":"https://api.github.com/users/open-craft/gists{/gist_id}","starred_url":"https://api.github.com/users/open-craft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-craft/subscriptions","organizations_url":"https://api.github.com/users/open-craft/orgs","repos_url":"https://api.github.com/users/open-craft/repos","events_url":"https://api.github.com/users/open-craft/events{/privacy}","received_events_url":"https://api.github.com/users/open-craft/received_events","type":"Organization","site_admin":false},"repo":{"id":33493013,"name":"dalite-ng","full_name":"open-craft/dalite-ng","owner":{"login":"open-craft","id":7414786,"avatar_url":"https://avatars.githubusercontent.com/u/7414786?v=3","gravatar_id":"","url":"https://api.github.com/users/open-craft","html_url":"https://github.com/open-craft","followers_url":"https://api.github.com/users/open-craft/followers","following_url":"https://api.github.com/users/open-craft/following{/other_user}","gists_url":"https://api.github.com/users/open-craft/gists{/gist_id}","starred_url":"https://api.github.com/users/open-craft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-craft/subscriptions","organizations_url":"https://api.github.com/users/open-craft/orgs","repos_url":"https://api.github.com/users/open-craft/repos","events_url":"https://api.github.com/users/open-craft/events{/privacy}","received_events_url":"https://api.github.com/users/open-craft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/open-craft/dalite-ng","description":"Rewrite the Dalite tool (https://github.com/open-craft/edu8-dalite/) as a cleaner, Django-based LTI tool.","fork":false,"url":"https://api.github.com/repos/open-craft/dalite-ng","forks_url":"https://api.github.com/repos/open-craft/dalite-ng/forks","keys_url":"https://api.github.com/repos/open-craft/dalite-ng/keys{/key_id}","collaborators_url":"https://api.github.com/repos/open-craft/dalite-ng/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/open-craft/dalite-ng/teams","hooks_url":"https://api.github.com/repos/open-craft/dalite-ng/hooks","issue_events_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/events{/number}","events_url":"https://api.github.com/repos/open-craft/dalite-ng/events","assignees_url":"https://api.github.com/repos/open-craft/dalite-ng/assignees{/user}","branches_url":"https://api.github.com/repos/open-craft/dalite-ng/branches{/branch}","tags_url":"https://api.github.com/repos/open-craft/dalite-ng/tags","blobs_url":"https://api.github.com/repos/open-craft/dalite-ng/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/open-craft/dalite-ng/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/open-craft/dalite-ng/git/refs{/sha}","trees_url":"https://api.github.com/repos/open-craft/dalite-ng/git/trees{/sha}","statuses_url":"https://api.github.com/repos/open-craft/dalite-ng/statuses/{sha}","languages_url":"https://api.github.com/repos/open-craft/dalite-ng/languages","stargazers_url":"https://api.github.com/repos/open-craft/dalite-ng/stargazers","contributors_url":"https://api.github.com/repos/open-craft/dalite-ng/contributors","subscribers_url":"https://api.github.com/repos/open-craft/dalite-ng/subscribers","subscription_url":"https://api.github.com/repos/open-craft/dalite-ng/subscription","commits_url":"https://api.github.com/repos/open-craft/dalite-ng/commits{/sha}","git_commits_url":"https://api.github.com/repos/open-craft/dalite-ng/git/commits{/sha}","comments_url":"https://api.github.com/repos/open-craft/dalite-ng/comments{/number}","issue_comment_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/comments{/number}","contents_url":"https://api.github.com/repos/open-craft/dalite-ng/contents/{+path}","compare_url":"https://api.github.com/repos/open-craft/dalite-ng/compare/{base}...{head}","merges_url":"https://api.github.com/repos/open-craft/dalite-ng/merges","archive_url":"https://api.github.com/repos/open-craft/dalite-ng/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/open-craft/dalite-ng/downloads","issues_url":"https://api.github.com/repos/open-craft/dalite-ng/issues{/number}","pulls_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls{/number}","milestones_url":"https://api.github.com/repos/open-craft/dalite-ng/milestones{/number}","notifications_url":"https://api.github.com/repos/open-craft/dalite-ng/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/open-craft/dalite-ng/labels{/name}","releases_url":"https://api.github.com/repos/open-craft/dalite-ng/releases{/id}","deployments_url":"https://api.github.com/repos/open-craft/dalite-ng/deployments","created_at":"2015-04-06T16:47:13Z","updated_at":"2016-02-17T16:54:00Z","pushed_at":"2016-04-28T02:55:51Z","git_url":"git://github.com/open-craft/dalite-ng.git","ssh_url":"git@github.com:open-craft/dalite-ng.git","clone_url":"https://github.com/open-craft/dalite-ng.git","svn_url":"https://github.com/open-craft/dalite-ng","homepage":null,"size":575,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":5,"forks":2,"open_issues":5,"watchers":3,"default_branch":"master"}},"base":{"label":"open-craft:master","ref":"master","sha":"f30637fa9bd825676e7418463a829328734d011e","user":{"login":"open-craft","id":7414786,"avatar_url":"https://avatars.githubusercontent.com/u/7414786?v=3","gravatar_id":"","url":"https://api.github.com/users/open-craft","html_url":"https://github.com/open-craft","followers_url":"https://api.github.com/users/open-craft/followers","following_url":"https://api.github.com/users/open-craft/following{/other_user}","gists_url":"https://api.github.com/users/open-craft/gists{/gist_id}","starred_url":"https://api.github.com/users/open-craft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-craft/subscriptions","organizations_url":"https://api.github.com/users/open-craft/orgs","repos_url":"https://api.github.com/users/open-craft/repos","events_url":"https://api.github.com/users/open-craft/events{/privacy}","received_events_url":"https://api.github.com/users/open-craft/received_events","type":"Organization","site_admin":false},"repo":{"id":33493013,"name":"dalite-ng","full_name":"open-craft/dalite-ng","owner":{"login":"open-craft","id":7414786,"avatar_url":"https://avatars.githubusercontent.com/u/7414786?v=3","gravatar_id":"","url":"https://api.github.com/users/open-craft","html_url":"https://github.com/open-craft","followers_url":"https://api.github.com/users/open-craft/followers","following_url":"https://api.github.com/users/open-craft/following{/other_user}","gists_url":"https://api.github.com/users/open-craft/gists{/gist_id}","starred_url":"https://api.github.com/users/open-craft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-craft/subscriptions","organizations_url":"https://api.github.com/users/open-craft/orgs","repos_url":"https://api.github.com/users/open-craft/repos","events_url":"https://api.github.com/users/open-craft/events{/privacy}","received_events_url":"https://api.github.com/users/open-craft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/open-craft/dalite-ng","description":"Rewrite the Dalite tool (https://github.com/open-craft/edu8-dalite/) as a cleaner, Django-based LTI tool.","fork":false,"url":"https://api.github.com/repos/open-craft/dalite-ng","forks_url":"https://api.github.com/repos/open-craft/dalite-ng/forks","keys_url":"https://api.github.com/repos/open-craft/dalite-ng/keys{/key_id}","collaborators_url":"https://api.github.com/repos/open-craft/dalite-ng/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/open-craft/dalite-ng/teams","hooks_url":"https://api.github.com/repos/open-craft/dalite-ng/hooks","issue_events_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/events{/number}","events_url":"https://api.github.com/repos/open-craft/dalite-ng/events","assignees_url":"https://api.github.com/repos/open-craft/dalite-ng/assignees{/user}","branches_url":"https://api.github.com/repos/open-craft/dalite-ng/branches{/branch}","tags_url":"https://api.github.com/repos/open-craft/dalite-ng/tags","blobs_url":"https://api.github.com/repos/open-craft/dalite-ng/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/open-craft/dalite-ng/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/open-craft/dalite-ng/git/refs{/sha}","trees_url":"https://api.github.com/repos/open-craft/dalite-ng/git/trees{/sha}","statuses_url":"https://api.github.com/repos/open-craft/dalite-ng/statuses/{sha}","languages_url":"https://api.github.com/repos/open-craft/dalite-ng/languages","stargazers_url":"https://api.github.com/repos/open-craft/dalite-ng/stargazers","contributors_url":"https://api.github.com/repos/open-craft/dalite-ng/contributors","subscribers_url":"https://api.github.com/repos/open-craft/dalite-ng/subscribers","subscription_url":"https://api.github.com/repos/open-craft/dalite-ng/subscription","commits_url":"https://api.github.com/repos/open-craft/dalite-ng/commits{/sha}","git_commits_url":"https://api.github.com/repos/open-craft/dalite-ng/git/commits{/sha}","comments_url":"https://api.github.com/repos/open-craft/dalite-ng/comments{/number}","issue_comment_url":"https://api.github.com/repos/open-craft/dalite-ng/issues/comments{/number}","contents_url":"https://api.github.com/repos/open-craft/dalite-ng/contents/{+path}","compare_url":"https://api.github.com/repos/open-craft/dalite-ng/compare/{base}...{head}","merges_url":"https://api.github.com/repos/open-craft/dalite-ng/merges","archive_url":"https://api.github.com/repos/open-craft/dalite-ng/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/open-craft/dalite-ng/downloads","issues_url":"https://api.github.com/repos/open-craft/dalite-ng/issues{/number}","pulls_url":"https://api.github.com/repos/open-craft/dalite-ng/pulls{/number}","milestones_url":"https://api.github.com/repos/open-craft/dalite-ng/milestones{/number}","notifications_url":"https://api.github.com/repos/open-craft/dalite-ng/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/open-craft/dalite-ng/labels{/name}","releases_url":"https://api.github.com/repos/open-craft/dalite-ng/releases{/id}","deployments_url":"https://api.github.com/repos/open-craft/dalite-ng/deployments","created_at":"2015-04-06T16:47:13Z","updated_at":"2016-02-17T16:54:00Z","pushed_at":"2016-04-28T02:55:51Z","git_url":"git://github.com/open-craft/dalite-ng.git","ssh_url":"git@github.com:open-craft/dalite-ng.git","clone_url":"https://github.com/open-craft/dalite-ng.git","svn_url":"https://github.com/open-craft/dalite-ng","homepage":null,"size":575,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":5,"forks":2,"open_issues":5,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43"},"html":{"href":"https://github.com/open-craft/dalite-ng/pull/43"},"issue":{"href":"https://api.github.com/repos/open-craft/dalite-ng/issues/43"},"comments":{"href":"https://api.github.com/repos/open-craft/dalite-ng/issues/43/comments"},"review_comments":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43/comments"},"review_comment":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/open-craft/dalite-ng/pulls/43/commits"},"statuses":{"href":"https://api.github.com/repos/open-craft/dalite-ng/statuses/2a84f483011c325b393a4d0a4ab46ad9c13b05bb"}}}}