CSC/ECE 517 Fall 2015/oss E1551 RGS

From Expertiza_Wiki
Revision as of 19:53, 30 October 2015 by Lsanche (talk | contribs) (Created page with "= E1551. Refactoring response_controller.rb = == Expertiza == == ResponseController == == Changes == === Remove SQL queries === This class contains SQL queries. Please change t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

E1551. Refactoring response_controller.rb

Expertiza

ResponseController

Changes

Remove SQL queries

This class contains SQL queries. Please change them to Active Record commands.

Tests

Contact: Ed Gehringer, efg@ncsu.edu What it does: response_controller.rb manages Responses. A Response is what is generated any time a user fills out a rubric--any rubric. This includes review rubrics, author-feedback rubrics, teammate-review rubrics, quizzes, and surveys. Responses come in versions. Any time an author revises work, and the reviewer comes back to review it, a new Response object is generated. This Response object points to a particular ReponseMap, which tells who the reviewer is, which team is the reviewee, and what the reviewed entity is. What needs to be done: latestResponseVersion is misnamed. It returns all versions of a response, and anyway, the method name should use underscores, not camelcase. get_scores has a Java-like name. It should just be scores. The 100+-line method rereview does not seem to be used anymore. The second-round review can be invoked in the same way as the first-round review. Remove it. create and update use completely different code. Factor the common parts out into a partial, thereby simplifying the methods. Authorization needs to be checked in the action_allowed method instead of in redirect_when_disallowed at the bottom of the file. After you move the functionality, check to make sure that no one other than the author of a review (or another team member, in the case of author feedback) can edit it, then remove the redirect_when_disallowed method. get_content is a complex method. It should be renamed to content and simplified. Comments should be added explaining what it does. Please write some functional tests for this class.