{"action":"opened","issue":{"url":"https://api.github.com/repos/pwnall/seven/issues/80","labels_url":"https://api.github.com/repos/pwnall/seven/issues/80/labels{/name}","comments_url":"https://api.github.com/repos/pwnall/seven/issues/80/comments","events_url":"https://api.github.com/repos/pwnall/seven/issues/80/events","html_url":"https://github.com/pwnall/seven/issues/80","id":107077483,"number":80,"title":"Refactor the mess that is GradesController#report","user":{"login":"pwnall","id":11460,"avatar_url":"https://avatars.githubusercontent.com/u/11460?v=3","gravatar_id":"","url":"https://api.github.com/users/pwnall","html_url":"https://github.com/pwnall","followers_url":"https://api.github.com/users/pwnall/followers","following_url":"https://api.github.com/users/pwnall/following{/other_user}","gists_url":"https://api.github.com/users/pwnall/gists{/gist_id}","starred_url":"https://api.github.com/users/pwnall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pwnall/subscriptions","organizations_url":"https://api.github.com/users/pwnall/orgs","repos_url":"https://api.github.com/users/pwnall/repos","events_url":"https://api.github.com/users/pwnall/events{/privacy}","received_events_url":"https://api.github.com/users/pwnall/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pwnall/seven/labels/low%20priority","name":"low priority","color":"bfd4f2"}],"state":"open","locked":false,"assignee":{"login":"spark008","id":5400319,"avatar_url":"https://avatars.githubusercontent.com/u/5400319?v=3","gravatar_id":"","url":"https://api.github.com/users/spark008","html_url":"https://github.com/spark008","followers_url":"https://api.github.com/users/spark008/followers","following_url":"https://api.github.com/users/spark008/following{/other_user}","gists_url":"https://api.github.com/users/spark008/gists{/gist_id}","starred_url":"https://api.github.com/users/spark008/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spark008/subscriptions","organizations_url":"https://api.github.com/users/spark008/orgs","repos_url":"https://api.github.com/users/spark008/repos","events_url":"https://api.github.com/users/spark008/events{/privacy}","received_events_url":"https://api.github.com/users/spark008/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-09-17T21:27:27Z","updated_at":"2015-09-17T21:27:27Z","closed_at":null,"body":"I think the logic should be pulled into a model class that can be tested without going through ActionController.\r\n\r\nAlso, we should render a spreadsheet that only has grades, and have a separate controller action for nice graphs and whatnot. This'd kill the histogram and stats in the spreadsheet, which account for most of the gnarly code."}}