CSC/ECE 517 Fall 2015/oss E1551 RGS: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
== Changes == | == Changes == | ||
=== Refactor latestResponseVersion method === | |||
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. | |||
=== Delete rereview method === | |||
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. | |||
=== DRY create and update === | |||
create and update use completely different code. Factor the common parts out into a partial, thereby simplifying the methods. | |||
=== Consistent authorization === | |||
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. | |||
=== Refactor get_content === | |||
get_content is a complex method. It should be renamed to content and simplified. Comments should be added explaining what it does. | |||
=== Remove SQL queries === | === Remove SQL queries === | ||
This class contains SQL queries. Please change them to Active Record commands. | This class contains SQL queries. Please change them to Active Record commands. | ||
Line 14: | Line 24: | ||
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. | 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: | What needs to be done: | ||
Please write some functional tests for this class. | Please write some functional tests for this class. |
Revision as of 19:57, 30 October 2015
E1551. Refactoring response_controller.rb
Expertiza
ResponseController
The ResponseController manages Responses.
Changes
Refactor latestResponseVersion method
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.
Delete rereview method
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.
DRY create and update
create and update use completely different code. Factor the common parts out into a partial, thereby simplifying the methods.
Consistent authorization
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.
Refactor get_content
get_content is a complex method. It should be renamed to content and simplified. Comments should be added explaining what it does.
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:
Please write some functional tests for this class.