<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smuvval</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smuvval"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Smuvval"/>
	<updated>2026-09-05T11:22:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131281</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131281"/>
		<updated>2019-12-16T18:21:13Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1 - Cannot begin/view/edit a meta-review''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
== '''Issue2 - Count of number of meta-reviews left not reducing''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3 - View/Hide meta-review fields based on enabled/disabled status''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131280</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131280"/>
		<updated>2019-12-16T18:20:01Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1 - Cannot begin/view/edit a meta-review''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
== '''Issue2 - Count of number of meta-reviews left not reducing''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131279</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=131279"/>
		<updated>2019-12-16T18:19:24Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1 - Cannot begin/view/edit a meta-review''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130536</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130536"/>
		<updated>2019-12-07T00:21:01Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Files to be modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130535</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130535"/>
		<updated>2019-12-07T00:20:51Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Files to be modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130534</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130534"/>
		<updated>2019-12-07T00:20:33Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130533</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130533"/>
		<updated>2019-12-07T00:20:23Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Solution and Code Modification for Issue 1 and 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue12.png&amp;diff=130500</id>
		<title>File:Issue12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue12.png&amp;diff=130500"/>
		<updated>2019-12-07T00:03:13Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130499</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130499"/>
		<updated>2019-12-07T00:03:02Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
[[File:issue12.png]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130497</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130497"/>
		<updated>2019-12-07T00:01:29Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Solution and Code Modification for Issue 1 and 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue ActiveRecord::RecordNotFound =&amp;gt; e&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modification 3 ====&lt;br /&gt;
There's this issue of user being able to request and review more than allowed 'x' number of reviews. After user performed max allowed 'x' number of reviews, the button 'Request a new metareview to perform' shouldn't be visible. To handle this, following code change is made in file (https://github.com/VishnusRepo/expertiza/blob/master/app/views/student_review/list.html.erb)&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;% if @assignment.num_metareviews_allowed - @num_metareviews_completed &amp;lt;= 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;span&amp;gt;Note: You can not do more than &amp;lt;%=@assignment.num_metareviews_allowed%&amp;gt; metareviews according to assignment policy.&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;% elsif @num_metareviews_in_progress == 0 %&amp;gt;&lt;br /&gt;
            &amp;lt;%= render :partial =&amp;gt; 'set_dynamic_metareview', :locals =&amp;gt; {:assignment =&amp;gt; @assignment} %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code in elsif block shows the button using which user can request more metareviews. By modifying the code as above, we shall not render the partial set_dynamic_metareview, which contains the request button.&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
Both the Issues 1 and 2 are now solved. For the test setup we performed, following screenshot shows that we were able to do metareviews(Issue 1 done) and count of metareviews remaining is being reduced(Issue 2 done).&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130484</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130484"/>
		<updated>2019-12-06T23:51:00Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html() %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130482</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130482"/>
		<updated>2019-12-06T23:50:32Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html()+&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130481</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130481"/>
		<updated>2019-12-06T23:50:10Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
        &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
            &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
            &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
            &amp;lt;%= response.display_as_html()+&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130480</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130480"/>
		<updated>2019-12-06T23:49:43Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
        &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
        &amp;lt;%= response.display_as_html()+&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
    if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
        @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130476</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130476"/>
		<updated>2019-12-06T23:48:44Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Modification 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
        &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
        &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
        &amp;lt;%= response.display_as_html()+&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; %&amp;gt;&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
    @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130475</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130475"/>
		<updated>2019-12-06T23:47:56Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Solution and Code Modification for Issue 1 and 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
Basically, the file named 'response.html.erb'(Exact navigation: https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/response.html.erb) is looking for a partial named 'review'&lt;br /&gt;
&lt;br /&gt;
==== Modification 1 ====&lt;br /&gt;
The code that expects partial is:&lt;br /&gt;
    &amp;lt;%= render :partial =&amp;gt; 'review', :locals =&amp;gt; {:versions =&amp;gt; @responses_versions} %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have created partial named _review.html.erb at https://github.com/VishnusRepo/expertiza/blob/master/app/views/response/_review.html.erb&lt;br /&gt;
It is a simple partial with code as follows:&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;% versions.each do |response| %&amp;gt;&lt;br /&gt;
    &amp;lt;% rm = ResponseMap.find(response.map_id) %&amp;gt;&lt;br /&gt;
    &amp;lt;% as = Assignment.find(rm.reviewed_object_id) %&amp;gt;&lt;br /&gt;
    &amp;lt;% questionnaire = rm.questionnaire %&amp;gt;&lt;br /&gt;
    &amp;lt;%= response.display_as_html()+&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Modification 2 ====&lt;br /&gt;
The response_controller.rb(controller that works in tandem with response.html.erb view, which was expecting partial) required a minute fix, which is,&lt;br /&gt;
- The existing code doesn't work if AssignmentTeam is found to be nil. Please check the below existing code:&lt;br /&gt;
&lt;br /&gt;
if @response.nil? || AssignmentTeam.find(@map.reviewee_id).most_recent_submission.updated_at &amp;gt; @response.updated_at&lt;br /&gt;
    @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
The response is created(by Response.create) only if the 'if' condition is satisfied.  The AssignmentTeam.find(@map.reviewee_id) shall return a nil(for metareviews), hence AssignmentTeam.find(@map.reviewee_id).most_recent_submission will throw an exception.&lt;br /&gt;
&lt;br /&gt;
The problem is, assignment team will be nil for meta reviews. Hence, existing code won't work.&lt;br /&gt;
&lt;br /&gt;
To cover this special nil case, we have modified the code as:&lt;br /&gt;
    &lt;br /&gt;
    begin&lt;br /&gt;
      assignment_team = AssignmentTeam.find(@map.reviewee_id)&lt;br /&gt;
    rescue&lt;br /&gt;
      assignment_team = nil&lt;br /&gt;
    end&lt;br /&gt;
    if @response.nil? || (!assignment_team.nil? &amp;amp;&amp;amp; assignment_team.most_recent_submission.updated_at &amp;gt; @response.updated_at)&lt;br /&gt;
      @response = Response.create(map_id: @map.id, additional_comment: '', round: @current_round, is_submitted: 0)&lt;br /&gt;
&lt;br /&gt;
By changing the code to above, we were able to handle the exceptions.&lt;br /&gt;
&lt;br /&gt;
When you click other's work for an assignment, you will navigate to Reviews/metareviews page(for navigation understanding, example URL: http://152.46.16.18:8080/student_review/list?id=36223). The&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130428</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130428"/>
		<updated>2019-12-06T23:22:17Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 1 and 2===&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130425</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130425"/>
		<updated>2019-12-06T23:21:20Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Solution and Code Modification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification for Issue 3===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130424</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130424"/>
		<updated>2019-12-06T23:20:48Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Existing Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented. Currently, as clicking the begin button is not working, we are not sure if the counter is being decremented properly.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130421</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130421"/>
		<updated>2019-12-06T23:19:54Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Existing Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed. Instead of this, the meta review page must be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130419</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130419"/>
		<updated>2019-12-06T23:18:52Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130416</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=130416"/>
		<updated>2019-12-06T23:18:34Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Overview of Project''' ==&lt;br /&gt;
&lt;br /&gt;
In Expertiza, meta-review is a feature that enables a third party to evaluate the quality of feedback that a reviewer gives a reviewee. meta-review is an important feature that can help students become better reviewers for their peers by providing detailed feedback that is actionable and positively formulated. Unfortunately, this feature is broken and the following issues were identified.&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern''' ==&lt;br /&gt;
Design patterns are not applicable as our task involved just modification of existing methods.&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Existing Issue===&lt;br /&gt;
1. Log in as instructor6, click on Manage...-&amp;gt; Assignments&lt;br /&gt;
&lt;br /&gt;
2. Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&lt;br /&gt;
3. Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&lt;br /&gt;
4. Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&lt;br /&gt;
6. Impersonate/login as student1 and make a submission&lt;br /&gt;
&lt;br /&gt;
7. Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&lt;br /&gt;
8. Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&lt;br /&gt;
9. When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&lt;br /&gt;
10. A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Design strategy For Issue1 and Issue 2''' ==&lt;br /&gt;
&lt;br /&gt;
The flow chart below describes the design we choose to implement the above two issues&lt;br /&gt;
&lt;br /&gt;
[[File:E1997_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
===Background:===&lt;br /&gt;
An instructor can edit an assignment and can choose whether to have metareview in it or not. He can do so by following the below steps:&lt;br /&gt;
&lt;br /&gt;
1) From Manage&amp;gt;Assignments, click on the Edit Assignment button for the appropriate assignment.&lt;br /&gt;
&lt;br /&gt;
2) On the Due Date tab, the instructor can select if (s)he wants to have meta-reviews done for the assignment, by clicking on the “Use meta-review deadline” checkbox and setting a meta-review deadline below.&lt;br /&gt;
&lt;br /&gt;
3) Under the “Review Strategy” tab of edit assignment, the instructor can set Allowed and Required number of meta-reviews per reviewer by checking the Has meta-review Limit? checkbox.&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta-reviews are not enabled for that assignment. The checkbox is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting it.&lt;br /&gt;
&lt;br /&gt;
===Solution and Code Modification===&lt;br /&gt;
&lt;br /&gt;
As the checkbox and the content to be displayed on clicking the checkbox are located on different pages we cannot use the regular checkbox logic, so we used the concept of local storage and event listener.&lt;br /&gt;
&lt;br /&gt;
we have made changes to the below two files:&lt;br /&gt;
&lt;br /&gt;
1)/expertiza/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
2)/expertiza/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
In the _due_dates.html.erb file: &lt;br /&gt;
&lt;br /&gt;
There is an existing code where on clicking the checkbox 'Use metareview deadline', a function called 'removeOrAddMetareview()' is invoked. The code snippet below shows the existing code:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview1.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 'removeOrAddMetareview()' is called on click of the 'Use metareview deadline' checkbox. Now we implemented two new functions which are invoked inside this function they are 'hideMetaReviewLimit()' and 'showMetaReviewLimit()'. This can be seen in the below code snippet&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on clicking the 'Use metareview deadline' checkbox, the new code will invoke the 'removeOrAddMetareview()' function which indirectly invokes the two new functions.&lt;br /&gt;
Now let us look at the implementation of the two new functions, we used a local storage variable called 'meta'.So based on the status of the checkbox a value is assigned to the local storage variable. For example, if the 'Use metareview deadline' checkbox is checked then the local storage variable is initialized with the value 'show' and if the 'Use metareview deadline' checkbox is Unchecked we assign with the value 'hide' to the local storage variable. Now after storing the respective values for the local storage variable, the storage event is triggered by these functions. The below code snippet shows the implementation of the two new functions:&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview3.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In _review_strategy.html.erb file:&lt;br /&gt;
&lt;br /&gt;
Small modifications have been made to the existing code that is the display of the table row with id 'meta' is given 'none' by default and also the status of the 'Has Meta-review Limit?' checkbox is changed to false. The below code snippet shows the modifications made:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview5.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a javascript code that handles the event triggered when the 'Use metareview deadline' checkbox has been checked or unchecked. In this javascript, the event triggered is handled by calling the 'onStorageEvent(storageEvent)' function. In this 'onStorageEvent' function we check the value in the local storage variable and based on that value we change the status of the display for the table row with id 'meta'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Metareview4.PNG]]&lt;br /&gt;
&lt;br /&gt;
Finally, the null value to the 'Has Meta-review Limit?' can be assigned during the creation of the table and on clicking the 'Has Meta-review Limit?' checkbox the UI displays '3' in the allowed number of metareviews that is num_metareviews_allowed variable is assigned '3'.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta-reviews is set to null.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the meta-review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in the Due dates tab.&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128704</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128704"/>
		<updated>2019-11-11T20:55:32Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
A boolean style variable, named say 'isMetaEnabled' which reflects the metareview enabled/disabled status is needed. When user checks 'Use metareview deadline' in Due dates tab, the isMetaEnabled will be set to true and vice versa.&lt;br /&gt;
&lt;br /&gt;
This isMetaEnabled shall reside and gets initialized to 'True'(metareview enabled) in the assignments_controller.rb &lt;br /&gt;
When user toggles the checkbox, the isMetaEnabled value shall be toggled accordingly.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy tab, the metareview fields(3 of them) are conditioned to be displayed only if isMetaEnabled is set to true.&lt;br /&gt;
&lt;br /&gt;
Pictorial representation of above explanation&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_design.png]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created, the number of meta reviews is set to null.&lt;br /&gt;
2. Ensure that the meta review fields in the review strategy tab are visible only when 'Use metareview deadline' is enabled in Due dates tab.&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128703</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128703"/>
		<updated>2019-11-11T20:52:45Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
Also, when a new issue is created, the default  # of meta-reviews allowed and required should be null.  As soon as someone checks the Has meta-review Limit box on the “Review Strategy” tab, the UI should fill in 3 and 3 as the required and allowed number. Of course, the user can change this number before submitting.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
A boolean style variable, named say 'isMetaEnabled' which reflects the metareview enabled/disabled status is needed. When user checks 'Use metareview deadline' in Due dates tab, the isMetaEnabled will be set to true and vice versa.&lt;br /&gt;
&lt;br /&gt;
This isMetaEnabled shall reside and gets initialized to 'True'(metareview enabled) in the assignments_controller.rb &lt;br /&gt;
When user toggles the checkbox, the isMetaEnabled value shall be toggled accordingly.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy tab, the metareview fields(3 of them) are conditioned to be displayed only if isMetaEnabled is set to true.&lt;br /&gt;
&lt;br /&gt;
Pictorial representation of above explanation&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_design.png]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created,&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128702</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128702"/>
		<updated>2019-11-11T20:51:38Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
A boolean style variable, named say 'isMetaEnabled' which reflects the metareview enabled/disabled status is needed. When user checks 'Use metareview deadline' in Due dates tab, the isMetaEnabled will be set to true and vice versa.&lt;br /&gt;
&lt;br /&gt;
This isMetaEnabled shall reside and gets initialized to 'True'(metareview enabled) in the assignments_controller.rb &lt;br /&gt;
When user toggles the checkbox, the isMetaEnabled value shall be toggled accordingly.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy tab, the metareview fields(3 of them) are conditioned to be displayed only if isMetaEnabled is set to true.&lt;br /&gt;
&lt;br /&gt;
Pictorial representation of above explanation&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_design.png]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
1. Ensure that when an assignment is created,&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_design.png&amp;diff=128701</id>
		<title>File:Issue3 design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_design.png&amp;diff=128701"/>
		<updated>2019-11-11T20:50:45Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128700</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128700"/>
		<updated>2019-11-11T20:50:31Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Design strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
A boolean style variable, named say 'isMetaEnabled' which reflects the metareview enabled/disabled status is needed. When user checks 'Use metareview deadline' in Due dates tab, the isMetaEnabled will be set to true and vice versa.&lt;br /&gt;
&lt;br /&gt;
This isMetaEnabled shall reside and gets initialized to 'True'(metareview enabled) in the assignments_controller.rb &lt;br /&gt;
When user toggles the checkbox, the isMetaEnabled value shall be toggled accordingly.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy tab, the metareview fields(3 of them) are conditioned to be displayed only if isMetaEnabled is set to true.&lt;br /&gt;
&lt;br /&gt;
Pictorial representation of above explanation&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_design.png]]&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128688</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128688"/>
		<updated>2019-11-11T20:44:56Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Design strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
A boolean style variable, named say 'isMetaEnabled' which reflects the metareview enabled/disabled status is needed. When user checks 'Use metareview deadline' in Due dates tab, the isMetaEnabled will be set to true and vice versa.&lt;br /&gt;
&lt;br /&gt;
This isMetaEnabled shall reside and gets initialized to 'True'(metareview enabled) in the assignments_controller.rb &lt;br /&gt;
When user toggles the checkbox, the isMetaEnabled value shall be toggled accordingly.&lt;br /&gt;
&lt;br /&gt;
In the Review Strategy tab, the metareview fields(3 of them) are conditioned to be displayed only if isMetaEnabled is set to true.&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128684</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128684"/>
		<updated>2019-11-11T20:38:45Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Files to be modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
1. _review_strategy.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_review_strategy.html.erb&lt;br /&gt;
&lt;br /&gt;
2. _due_dates.html.erb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
&lt;br /&gt;
3. assignments_controller.rb&lt;br /&gt;
Source file: https://github.com/expertiza/expertiza/blob/master/app/controllers/assignments_controller.rb&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_2.png&amp;diff=128674</id>
		<title>File:Issue3 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_2.png&amp;diff=128674"/>
		<updated>2019-11-11T20:31:57Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128673</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128673"/>
		<updated>2019-11-11T20:31:48Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
As said, when this box is unchecked, it means there is no meta reviewing system for this assignment. The issue is, there are some meta review related fields that show up even if the above box is unchecked. Like in below image&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_2.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_1.png&amp;diff=128669</id>
		<title>File:Issue3 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Issue3_1.png&amp;diff=128669"/>
		<updated>2019-11-11T20:29:34Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128668</id>
		<title>CSC/ECE 517 Fall 2019 - E1997. Issues related to meta-reviewing</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1997._Issues_related_to_meta-reviewing&amp;diff=128668"/>
		<updated>2019-11-11T20:29:19Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issue Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Problem statement''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Issue1''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
When a user requests a new meta-review, (s)he should be able to click on the Begin button, which should redirect him/her to the meta-review questionnaire and when the user returns back (to the page where he can view the reviews and meta-reviews, by clicking on Others’ work in his/her assignment), (s)he should be then able to see view and update links for the meta-reviews (s)he has performed.&lt;br /&gt;
&lt;br /&gt;
But the issue is &amp;lt;b&amp;gt;Begin&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Edit&amp;lt;/b&amp;gt; are not working for the given scenario.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on manage...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all of the following: Submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked following will be displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Expertiza project3 Issue1 E1997.png]]&lt;br /&gt;
&amp;lt;li&amp;gt;A template must be added to fix the broken link&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
response.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue2''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
The number of meta-reviews(refer to the snapshot below),should decrease when a user requests a meta-review.Also, the button to request a new meta-review should not disappear until the total number of reviews assigned has reached the allowed limit.&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&amp;lt;li&amp;gt;Log in as instructor6, click on mange...-&amp;gt; Assignments&lt;br /&gt;
&amp;lt;li&amp;gt;Click on edit assignment, navigate to Due Dates and check &amp;quot;Use meta-review deadline&amp;quot; checkbox&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Yes&amp;quot; for all submission allowed, Review allowed and Meta-review allowed in all of the deadline types&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate back to Assignment Tree View and click on &amp;quot;Add participant&amp;quot;&lt;br /&gt;
&amp;lt;li&amp;gt;Add couple of students(say student1 and student2) to the assignment&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student1 and make a submission&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login as student2 and Request for a new review under others work, submit the review&lt;br /&gt;
&amp;lt;li&amp;gt;Impersonate/login back as student1 and Request for a new meta review&lt;br /&gt;
&amp;lt;li&amp;gt;When Begin is clicked, the meta-review count should be decremented&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;br /&gt;
 &amp;lt;li&amp;gt;List.html.erb&lt;br /&gt;
&lt;br /&gt;
== '''Issue3''' ==&lt;br /&gt;
&lt;br /&gt;
===Issue Description===&lt;br /&gt;
For an assignment, when 'Use Metareview Deadline' is unchecked, it means meta reviews are not enabled for that assignment. The check box is as below&lt;br /&gt;
&lt;br /&gt;
[[File:issue3_1.png]]&lt;br /&gt;
&lt;br /&gt;
===Design strategy===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Files to be modified===&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126236</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126236"/>
		<updated>2019-10-29T00:45:31Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Resolving Issue 2: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': Please rename the assignment to some random string of your choice. Having it as 'Copy of'.. is creating issues of duplicate names when creating a new copy (more details in the section below, named 'Our Recommendation for a separate issue'. Not required for students). If not changed, the next tester might face difficulty while testing(which we don't want to see happening :)).&lt;br /&gt;
&lt;br /&gt;
'''Step 9''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue &amp;lt;For Instructors only&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126235</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126235"/>
		<updated>2019-10-29T00:45:18Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': Please rename the assignment to some random string of your choice. Having it as 'Copy of'.. is creating issues of duplicate names when creating a new copy (more details in the section below, named 'Our Recommendation for a separate issue'. Not required for students). If not changed, the next tester might face difficulty while testing(which we don't want to see happening :)).&lt;br /&gt;
&lt;br /&gt;
'''Step 9''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue &amp;lt;For Instructors only&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126228</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126228"/>
		<updated>2019-10-29T00:41:17Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': Please rename the assignment to some random string of your choice. Having it as 'Copy of'.. is creating issues when creating a new copy (more details )&lt;br /&gt;
&lt;br /&gt;
'''Step 9''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue &amp;lt;For Instructors only&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126223</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126223"/>
		<updated>2019-10-29T00:39:18Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Our Recommendation for a separate issue  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue &amp;lt;For Instructors only&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126222</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126222"/>
		<updated>2019-10-29T00:38:41Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Our Recommendation for a separate issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue &amp;lt;For Instructors reading purpose only&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126221</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126221"/>
		<updated>2019-10-29T00:37:05Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
'''Step 1''': Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
'''Step 2''': On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
'''Step 3''': Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
'''Step 4''': After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 5''': Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 6''': Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Step 7''': After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab(As shown in image below). Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Step 8''': This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126217</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126217"/>
		<updated>2019-10-29T00:34:11Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
Step 1: Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
Step 2: On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
Step 3: Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
Step 4: After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 5: Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 6: Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7: After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
- copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
- copy with topics: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
- copy with topics and students: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
Step 8: This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126214</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126214"/>
		<updated>2019-10-29T00:33:47Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
Step 1: Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
Step 2: On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
Step 3: Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
Step 4: After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 5: Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 6: Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7: After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
  a) copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
  b) copy with topics: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
  c) copy with topics and students: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
Step 8: This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126212</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126212"/>
		<updated>2019-10-29T00:33:17Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Testing our work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
Step 1: Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
Step 2: On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
Step 3: Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
Step 4: After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 5: Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 6: Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7: After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
    a) copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
    b) copy with topics: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
    c) copy with topics and students: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
Step 8: This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126211</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126211"/>
		<updated>2019-10-29T00:31:15Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Resolving Issue 1: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Testing our work ==&lt;br /&gt;
By following the below stated process, you can test the implementation that we worked on, which is:&lt;br /&gt;
Target 1: Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
Target 2: Provide the user with the option to select copy/not copy students/teams linked to a topic.&lt;br /&gt;
&lt;br /&gt;
Step 1: Visit http://152.46.17.204:8080/ . Enter the credentials; Username: instructor6 , password: password&lt;br /&gt;
&lt;br /&gt;
Step 2: On the top, hover on Manage tab. Click Assignments.&lt;br /&gt;
&lt;br /&gt;
Step 3: Choose an assignment that you want to copy. We would recommend you choosing a robust assignment which has Topics and students/teams associated with topics. OSS Projects generally have these.&lt;br /&gt;
&lt;br /&gt;
If you want to check and see if an assignment has topics or not, click on Edit (pencil icon) on the right. &lt;br /&gt;
- If this assignment has topics, you will see a tab named Topics on the right of General tab. If there are no topics, you won't see Topics tab.&lt;br /&gt;
- On Clicking the Topics tab, you can see the list of topics. If students/teams are assigned to topics, you will see student names (alias representations, like student1234 student2343) under each Topic name in 'Topic name(s) column'. If you don't see any such, it means that teams/students are not assigned to topics.&lt;br /&gt;
&lt;br /&gt;
Step 4: After you chose the assignment that you want to copy, click on the copy icon on the right of the corresponding assignment. &lt;br /&gt;
&lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Step 5: Clicking the copy button will take you to copy options page, where you can select the options for copying. The page looks like this:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Step 6: Choose the option you wish to test. Click create. Now the assignment shall be copied with the options you provided.&lt;br /&gt;
&lt;br /&gt;
Step 7: After copying, the application takes you to 'Edit' page for the assignment where you can edit/view the details pertaining to the assignment. Here, you can test our implementation.&lt;br /&gt;
In step 6, if you chose to &lt;br /&gt;
&lt;br /&gt;
    a) copy without topics: You won't see 'Topics' tab near General tab.&lt;br /&gt;
    &lt;br /&gt;
    b) copy with topics: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You won't see students under each topic in 'Topic Name(s)' column(If there are topics under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
    c) copy with topics and students: You will see 'Topics' tab near General tab. Navigate to Topics tab where you can see and check that the respective topics have been copied. You will see students under each topic in 'Topic Name(s)' column(If there are topics and students under Topics tab in original assignment from which you created this copy).&lt;br /&gt;
&lt;br /&gt;
Step 8: This completes the testing. Reiterate from step 2, if you wish to test again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126137</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126137"/>
		<updated>2019-10-28T23:53:35Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Resolving Issue 1: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 1: ==&lt;br /&gt;
Provide the user with the option to select copy/not copy topics linked to an assignment.&lt;br /&gt;
&lt;br /&gt;
1) To resolve the issue, on clicking the copy button, we will redirect the user (instructor or TA) to a new web page. &lt;br /&gt;
Where is the copy button located? Check the image below.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) On clicking the copy icon we will redirect to a new webpage which looks like:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126133</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126133"/>
		<updated>2019-10-28T23:50:08Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Steps to generate the issues: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issue &amp;lt;Existing system, without our implementation&amp;gt; &amp;lt;Requires Instructor credentials&amp;gt;:===&lt;br /&gt;
1) Login to expertiza.ncsu.edu using instructor credentials.&lt;br /&gt;
&lt;br /&gt;
2) Navigate to Assignments section. (How? Hover on Manage Tab -&amp;gt; Click on Assignments)&lt;br /&gt;
&lt;br /&gt;
3) Copy the assignment of your choice by clicking copy icon located on the right side the specific assignment.&lt;br /&gt;
&lt;br /&gt;
Above steps copy the assignment. Remember that this process did not give you the flexibility of choosing whether to copy/not copy&lt;br /&gt;
&lt;br /&gt;
1) Topics linked to assignment&lt;br /&gt;
&lt;br /&gt;
2) Students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
Present system copies the topics and doesn't copy the students, even if you don't want it this way. Our implementation is to provide the user with the functionality to choose copy/not copy topics linked to an assignment and students/teams linked to each topic.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 1: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) To resolve the issue we will redirect the user (instructor or TA) to a new web page on clicking the copy icon which is present on the right side of each project.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) On clicking the copy icon we will redirect to a new webpage which looks like:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code Modification ==&lt;br /&gt;
We have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
We have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[http://152.46.17.204:8080/ Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126120</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126120"/>
		<updated>2019-10-28T23:38:53Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Issues: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki Page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not. Currently, it is copying the topics, without providing any choice for user to not have the topics.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment, the teams/students assigned to each topic are not getting copied. The user might want to copy the teams/students mapped to the topics as well.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issues:===&lt;br /&gt;
1) Login as an instructor using the credentials username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) You will be redirected to the home page of the expertiza, Hover your cursor over the manage tab and select the assignment tab.&lt;br /&gt;
&lt;br /&gt;
3) It will be redirected to the assignment page so on clicking the copy icon to the right of each assignment it will create a new assignment along with the topics and students under the topic are not copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 1: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) To resolve the issue we will redirect the user (instructor or TA) to a new web page on clicking the copy icon which is present on the right side of each project.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) On clicking the copy icon we will redirect to a new webpage which looks like:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code modification ==&lt;br /&gt;
we have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
we have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126111</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126111"/>
		<updated>2019-10-28T23:35:42Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Background: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). we will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
we can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instruct can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment the students are not copied for a particular topic so the user (instructor or TA) is not asked whether he wants to copy the topics with the associated students or not.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issues:===&lt;br /&gt;
1) Login as an instructor using the credentials username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) You will be redirected to the home page of the expertiza, Hover your cursor over the manage tab and select the assignment tab.&lt;br /&gt;
&lt;br /&gt;
3) It will be redirected to the assignment page so on clicking the copy icon to the right of each assignment it will create a new assignment along with the topics and students under the topic are not copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 1: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) To resolve the issue we will redirect the user (instructor or TA) to a new web page on clicking the copy icon which is present on the right side of each project.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) On clicking the copy icon we will redirect to a new webpage which looks like:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code modification ==&lt;br /&gt;
we have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
we have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;br /&gt;
&lt;br /&gt;
Mentor : Yashad Trivedi&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126109</id>
		<title>CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2019_-_E1959._Intelligent_copying_of_assignments_without_topics&amp;diff=126109"/>
		<updated>2019-10-28T23:33:15Z</updated>

		<summary type="html">&lt;p&gt;Smuvval: /* Problem Statemnet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Wiki page Description''' ==&lt;br /&gt;
This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). we will explain about the issue and also the steps to resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
&lt;br /&gt;
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles&lt;br /&gt;
&lt;br /&gt;
As an Instructor:&lt;br /&gt;
&lt;br /&gt;
we can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instruct can also add participants, reviewers to a particular assignment.&lt;br /&gt;
&lt;br /&gt;
As a Student:&lt;br /&gt;
&lt;br /&gt;
They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.&lt;br /&gt;
&lt;br /&gt;
== '''Problem Statement''' ==&lt;br /&gt;
&lt;br /&gt;
===Background:===&lt;br /&gt;
When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is copied as it is but the user may have some choices while copying the assignment.&lt;br /&gt;
&lt;br /&gt;
===Issues:===&lt;br /&gt;
Issue 1: &lt;br /&gt;
While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not.&lt;br /&gt;
&lt;br /&gt;
Issue 2:&lt;br /&gt;
While copying an assignment the students are not copied for a particular topic so the user (instructor or TA) is not asked whether he wants to copy the topics with the associated students or not.&lt;br /&gt;
&lt;br /&gt;
===Steps to generate the issues:===&lt;br /&gt;
1) Login as an instructor using the credentials username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) You will be redirected to the home page of the expertiza, Hover your cursor over the manage tab and select the assignment tab.&lt;br /&gt;
&lt;br /&gt;
3) It will be redirected to the assignment page so on clicking the copy icon to the right of each assignment it will create a new assignment along with the topics and students under the topic are not copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 1: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) To resolve the issue we will redirect the user (instructor or TA) to a new web page on clicking the copy icon which is present on the right side of each project.&lt;br /&gt;
[[File: Copy oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) On clicking the copy icon we will redirect to a new webpage which looks like:&lt;br /&gt;
[[File: Copy2 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.&lt;br /&gt;
[[File: Copy3 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
[[File: Copy4 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On clicking the topics tab we can see the list of topics under the assignment copied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Copy5 oss.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) In a similar way, we can select the NO button which does not allow the assignment to be copied.&lt;br /&gt;
&lt;br /&gt;
== Resolving Issue 2: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.&lt;br /&gt;
&lt;br /&gt;
2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:&lt;br /&gt;
&lt;br /&gt;
O copy without topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics&lt;br /&gt;
&lt;br /&gt;
O copy with topics and teams&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy6.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) we can select one of the options and then we can select the create button according to our desired choice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) The assignment will be copied successfully according to our choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: oss_copy7.PNG|frame|center]]&lt;br /&gt;
&lt;br /&gt;
== Code modification ==&lt;br /&gt;
we have modified 5 files and mainly we have modified code in two classes they are:&lt;br /&gt;
assignments_controller.rb under the apps/controllers&lt;br /&gt;
assignment_form.rb under the apps/models&lt;br /&gt;
&lt;br /&gt;
we have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.&lt;br /&gt;
&lt;br /&gt;
== For the reviewers ==&lt;br /&gt;
1) Please log in using the instructor credentials they are username:instructor6 password: password&lt;br /&gt;
&lt;br /&gt;
2) Then select the assignment tab under manage&lt;br /&gt;
&lt;br /&gt;
3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]&lt;br /&gt;
&lt;br /&gt;
4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.&lt;br /&gt;
&lt;br /&gt;
5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]&lt;br /&gt;
&lt;br /&gt;
6) Check the new assignment based on the choice you selected while creating a copy of an assignment.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Our work ==&lt;br /&gt;
The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Pull request]&lt;br /&gt;
*[https://github.com/expertiza/expertiza/pull/1524 Deployed URL]&lt;br /&gt;
&lt;br /&gt;
== Our Recommendation for a separate issue ==&lt;br /&gt;
&lt;br /&gt;
In the current system, we identified an issue and would like to bring it to your notice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Existing System ===&lt;br /&gt;
&lt;br /&gt;
When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt;, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issue ===&lt;br /&gt;
&lt;br /&gt;
The current naming scheme as ‘copy of’ + &amp;lt;name of existing assignment&amp;gt; is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The assignment was not able to be copied. Please check the original assignment for missing information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Recommendation ===&lt;br /&gt;
&lt;br /&gt;
Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + &amp;lt;name of existing assignment&amp;gt; + &amp;lt;5 digit random code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.&lt;br /&gt;
&lt;br /&gt;
== Team Information ==&lt;br /&gt;
1) Sai Vishnu Muvvala(smuvval)&lt;br /&gt;
&lt;br /&gt;
2) Rohan Pillai(rspillai)&lt;br /&gt;
&lt;br /&gt;
3) Subha Sekhar Reddy Pereddy(speredd)&lt;/div&gt;</summary>
		<author><name>Smuvval</name></author>
	</entry>
</feed>