<?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=Draghun</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=Draghun"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Draghun"/>
	<updated>2026-09-12T23:46:22Z</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_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136323</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136323"/>
		<updated>2020-10-28T02:27:53Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Proposed Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required&lt;br /&gt;
&lt;br /&gt;
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Manual Testing Plan ====&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
==== Directions for Manual Testing ====&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment that you want to setup calibration for&lt;br /&gt;
** Hit on '''copy''' and toggle on calibration on the popup that appears&lt;br /&gt;
** Hit on submit&lt;br /&gt;
** On the calibrations tab the copied submissions [Files and URLs] must be present in the calibration tab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RSpec Testing Plan ====&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
==== Directions for RSpec Testing ====&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136322</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136322"/>
		<updated>2020-10-28T02:27:04Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required &lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Manual Testing Plan ====&lt;br /&gt;
Manual test to check if:&lt;br /&gt;
* The UI is working as expected [No broken links] &lt;br /&gt;
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.&lt;br /&gt;
&lt;br /&gt;
==== Directions for Manual Testing ====&lt;br /&gt;
* Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'&lt;br /&gt;
* Go to an existing assignment that you want to setup calibration for&lt;br /&gt;
** Hit on '''copy''' and toggle on calibration on the popup that appears&lt;br /&gt;
** Hit on submit&lt;br /&gt;
** On the calibrations tab the copied submissions [Files and URLs] must be present in the calibration tab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RSpec Testing Plan ====&lt;br /&gt;
RSpec test to check:&lt;br /&gt;
* Validation of the models&lt;br /&gt;
* Sanity and basic functionality of controllers&lt;br /&gt;
** This involves essentially checking if the copied calibration's corresponding model has entries for the submissions &lt;br /&gt;
&lt;br /&gt;
==== Directions for RSpec Testing ====&lt;br /&gt;
* Run the following commands:&lt;br /&gt;
** For controllers: rspec spec/controllers/&lt;br /&gt;
** For models: rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136321</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=136321"/>
		<updated>2020-10-28T02:04:44Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== About Expertiza ==&lt;br /&gt;
Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University. &lt;br /&gt;
&lt;br /&gt;
It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problem Statement =&lt;br /&gt;
&lt;br /&gt;
== Goal ==&lt;br /&gt;
Calibration submissions should be copied along with calibration assignments.&lt;br /&gt;
&lt;br /&gt;
== Issue in current implementation ==&lt;br /&gt;
On creating a copy of a previous assignment, say for example Design Exercise, &amp;lt;i&amp;gt;Fall '20&amp;lt;/i&amp;gt; for the &amp;lt;i&amp;gt;Fall '21&amp;lt;/i&amp;gt; semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants.  This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The following steps were taken to test the aforementioned issues:'''&lt;br /&gt;
&lt;br /&gt;
'''Step 1:''' On copying the Design exercise assignment&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:copy_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2:''' The original file contains the following calibration reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_a_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 3:''' However, the copy doesn't contain any of the calibrated reviews&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:cali_b_2075.png]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementation =&lt;br /&gt;
== Proposed Design ==&lt;br /&gt;
The following must be added to the current implementation:&lt;br /&gt;
&lt;br /&gt;
* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory&lt;br /&gt;
* The URLs and/or files that were submitted to the previous assignment must be copied over as well&lt;br /&gt;
* Test cases to check if the above-mentioned steps work as required &lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
* '''submission_records_controller.rb'''&lt;br /&gt;
* '''index.html.erb''' in expertiza/app/views/submission_records&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Test Plan =&lt;br /&gt;
&lt;br /&gt;
===   ''Manual Testing''   ===&lt;br /&gt;
Manual testing should be preformed on an Expertiza server. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Manual Testing Plan ====&lt;br /&gt;
Manual testing should (''at a minimum''): &lt;br /&gt;
* test that the UI is implemented as expected&lt;br /&gt;
* test that a participant can bid on projects to review&lt;br /&gt;
** test that a participant can move projects into the bidding column&lt;br /&gt;
** test that a participant can reorder projects in the bidding column&lt;br /&gt;
** test that a participant's bidding preferences save&lt;br /&gt;
&lt;br /&gt;
==== Directions for Manual Testing ====&lt;br /&gt;
:# Go to [http://152.7.99.70:8081/ testing server]&lt;br /&gt;
:# Log in as username: '''instructor6''' password: '''password''' &lt;br /&gt;
:# Go to '''Assignments''' &lt;br /&gt;
:# Two tasks should be listed in the main assignments box&lt;br /&gt;
:::a. Go to '''E2085 Manual Testing- Instructor6 Reviewer review'''&lt;br /&gt;
:::# This UI is based on the user being a ''reviewer'' (i.e. user was not in a team and did not submit anything)&lt;br /&gt;
:::# The UI should allow the user to bid on any project&lt;br /&gt;
:::b. Go to '''E2085 Manual Testing- Instructor6 Participant review'''&lt;br /&gt;
:::# This UI is based on the user being a ''participant'' (i.e. user was in a team and assigned a topic)&lt;br /&gt;
:::# The UI blocks user from bidding on their own project (instructor6 was assigned topic4)&lt;br /&gt;
&lt;br /&gt;
==== Manual Testing Demo Video ====&lt;br /&gt;
Video demonstration of manual testing: [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2085._Allow_reviewers_to_bid_on_what_to_review link to be added]&lt;br /&gt;
&lt;br /&gt;
===   ''Automatic/RSpec Testing ''   ===&lt;br /&gt;
RSpec tests will need to be written to related controller(s) and model(s). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RSpec Testing Plan ====&lt;br /&gt;
These RSpec tests should (''at a minimum''):&lt;br /&gt;
* test basic functionality of controller(s)&lt;br /&gt;
* test validation of the model(s)&lt;br /&gt;
* test the scenarios (basic case &amp;amp; edge cases) mentioned above&lt;br /&gt;
&lt;br /&gt;
==== Directions for RSpec Testing ====&lt;br /&gt;
:# [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/edit Set up Expertiza] on personal device using [https://github.com/uahamedncsu/expertiza forked repo]&lt;br /&gt;
:# Run the following commands:&lt;br /&gt;
&lt;br /&gt;
 # related controllers: &lt;br /&gt;
 rspec spec/controllers/&lt;br /&gt;
 &lt;br /&gt;
 # related models: &lt;br /&gt;
 rspec spec/models/&lt;br /&gt;
&lt;br /&gt;
= Useful Links =&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Information =&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135956</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135956"/>
		<updated>2020-10-22T01:07:33Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Accommodating an easier way to create calibrations will certainly deem useful.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
Our objectives for this project are the following:&lt;br /&gt;
&lt;br /&gt;
* Use the same extra participants as the assignment you are copying to creating the calibration used&lt;br /&gt;
* Add test cases to maintain coverage if SLOC increases&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
== Implementation ==&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135955</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135955"/>
		<updated>2020-10-22T01:06:32Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Overview ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
The Expertiza project allows &amp;quot;calibration assignments&amp;quot; to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Accommodating an easier way to create calibrations will certainly deem useful.&lt;br /&gt;
&lt;br /&gt;
=== Objective ===&lt;br /&gt;
Our objectives for this project are the following:&lt;br /&gt;
&lt;br /&gt;
* Use the same extra participants as the assignment you are copying to creating the calibration used&lt;br /&gt;
* Add test cases to maintain coverage if SLOC increases&lt;br /&gt;
&lt;br /&gt;
=== Team ===&lt;br /&gt;
&lt;br /&gt;
* Nischal Kashyap &lt;br /&gt;
* Mounika Bachu&lt;br /&gt;
* Akshay Podila&lt;br /&gt;
* Dhanraj Raghunathan&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=135951</id>
		<title>CSC/ECE 517 Fall 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020&amp;diff=135951"/>
		<updated>2020-10-22T00:37:11Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Final Project Design Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing Assignments ==&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2070. Refactor response_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2068. Refactor quiz_questionnaires_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2062. Add test cases to review_mapping_helper.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2063. Refactor tree-display.js and tree_display_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2064. Refactor reputation_web_service_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2065. Fix view in student_task/list page]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2066. Refactor lottery controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2067. Refactor student_teams_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2073. Refactor course_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2057. Restrict TAs’ ability to change their own grade and limit file-size upload]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2052. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2052. Remove multiple topics at a time]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2056 Account_Request_Controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2059. Email notification to reviewers and instructors.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2058. Two issues related to assignment management]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2071. Improve assessment360_controller.rb]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2054. Auto generate submission directory names based on assignment names]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews]]&lt;br /&gt;
&lt;br /&gt;
== Final Project Design Documents == &lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2082. Track time between successive tag assignments]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2078. Improve self-review  Link peer review &amp;amp; self-review to derive grades]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2083. Revision_planning_tool_E2016]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2085. Allow reviewers to bid on what to review]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2086. Let course staff as well as students do reviews]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - SQLFE. Refactor Submission.java]]&lt;br /&gt;
* [[CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments]]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135950</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135950"/>
		<updated>2020-10-22T00:29:49Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A “calibration assignment” is an assignment where the students are asked to review work that has also been reviewed by a member of the course staff.  If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer.  Here is a further description of calibration assignments.&lt;br /&gt;
To set up calibration, the instructor (or TA) adds a few extra participants to the assignment.  The instructor (or TA) then impersonates the extra participants, and submits work on behalf of each of the extra participants.  This is, obviously, extra trouble, and it would be nice if an instructor didn’t have to resubmit the same calibration submissions every semester.  So this project asks you to write code that copies over the calibration submissions whenever a calibrated assignment is submitted.&lt;br /&gt;
My suggestion is that, when copying an assignment, you use the same extra participants as the assignment you are copying used.  Then, copy the URLs and/or files that were submitted to the previous assignment, and submit them to this assignment as well.&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135949</id>
		<title>CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2075._calibration_submissions_should_be_copied_along_with_calibration_assignments&amp;diff=135949"/>
		<updated>2020-10-22T00:29:17Z</updated>

		<summary type="html">&lt;p&gt;Draghun: Created page with &amp;quot;Placeholder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Placeholder&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135345</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135345"/>
		<updated>2020-10-18T17:08:33Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultant View === &lt;br /&gt;
&lt;br /&gt;
* Expertiza on test VCL instance - http://152.7.98.76:8080/&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Rspec testing: &lt;br /&gt;
&lt;br /&gt;
Added the following test to the ~/expertiza/spec/controllers/popup_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#team_users_popup' do&lt;br /&gt;
    it &amp;quot;renders the page successfuly as Instructor&amp;quot; do&lt;br /&gt;
      allow(Team).to receive(:find).and_return(team)&lt;br /&gt;
      allow(Assignment).to receive(:find).and_return(assignment)&lt;br /&gt;
      params = {id: team.id, assignment: assignment, reviewer_id: participant2.id}&lt;br /&gt;
      session = {user: instructor}&lt;br /&gt;
      result = get :team_users_popup, params, session&lt;br /&gt;
      expect(result.status).to eq 200&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the modifications are mostly on a view, a simple test would suffice.&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
 &lt;br /&gt;
* [https://github.com/lgdeloss/expertiza Forked Github repo]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1805 Corresponding pull request]&lt;br /&gt;
* [https://www.youtube.com/watch?v=iaO2sowXTB0 Video showing the changes and the effect]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
*[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg Expertiza YouTube Channel]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135265</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135265"/>
		<updated>2020-10-16T16:25:45Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Resultant View */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultant View === &lt;br /&gt;
&lt;br /&gt;
* Expertiza on test VCL instance - http://152.7.98.76:8080/&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
 &lt;br /&gt;
* [https://github.com/lgdeloss/expertiza Forked Github repo]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1805 Corresponding pull request]&lt;br /&gt;
* [https://www.youtube.com/watch?v=iaO2sowXTB0 Video showing the changes and the effect]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
*[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg Expertiza YouTube Channel]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135264</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135264"/>
		<updated>2020-10-16T16:25:02Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultant View === &lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
 &lt;br /&gt;
* [https://github.com/lgdeloss/expertiza Forked Github repo]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1805 Corresponding pull request]&lt;br /&gt;
* [https://www.youtube.com/watch?v=iaO2sowXTB0 Video showing the changes and the effect]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
*[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg Expertiza YouTube Channel]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135263</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135263"/>
		<updated>2020-10-16T16:24:24Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
 &lt;br /&gt;
* [https://github.com/lgdeloss/expertiza Forked Github repo]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1805 Corresponding pull request]&lt;br /&gt;
* [https://www.youtube.com/watch?v=iaO2sowXTB0 Video showing the changes and the effect]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
*[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
*[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
*[http://research.csc.ncsu.edu/efg/expertiza Expertiza project Details]&lt;br /&gt;
*[https://www.youtube.com/channel/UCdKXzox7hrWjfOMML6FzTWg Expertiza YouTube Channel]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135262</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135262"/>
		<updated>2020-10-16T16:23:57Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Important Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
 &lt;br /&gt;
* [https://github.com/lgdeloss/expertiza Forked Github repo]&lt;br /&gt;
* [https://github.com/expertiza/expertiza/pull/1805 Corresponding pull request]&lt;br /&gt;
* [https://www.youtube.com/watch?v=iaO2sowXTB0 Video showing the changes and the effect]&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135261</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135261"/>
		<updated>2020-10-16T16:22:14Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135260</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135260"/>
		<updated>2020-10-16T16:20:03Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Task */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: Screen Shot 2020-10-16 at 12.13.44 PM.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135259</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135259"/>
		<updated>2020-10-16T16:18:46Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Task */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File: oss_e2060.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135258</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135258"/>
		<updated>2020-10-16T16:18:26Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Task */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:oss_e2060.png]]&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screen_Shot_2020-10-16_at_12.13.44_PM.png&amp;diff=135257</id>
		<title>File:Screen Shot 2020-10-16 at 12.13.44 PM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screen_Shot_2020-10-16_at_12.13.44_PM.png&amp;diff=135257"/>
		<updated>2020-10-16T16:14:21Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135256</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135256"/>
		<updated>2020-10-16T16:13:23Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
** Click on any of the links from **Team reviewed**&lt;br /&gt;
&lt;br /&gt;
Resultant view:&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135255</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135255"/>
		<updated>2020-10-16T15:48:38Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
# As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
# The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
* To Test UI for student View&lt;br /&gt;
** Log-in as Student.&lt;br /&gt;
** Go to Assignment&lt;br /&gt;
** Click Your scores&lt;br /&gt;
** Click show reviews&lt;br /&gt;
&lt;br /&gt;
* To Test UI for instructor View&lt;br /&gt;
** Log-in as Instructor.&lt;br /&gt;
** Go to Manage Assignments&lt;br /&gt;
** Click on review report of a particular assignment&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135254</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135254"/>
		<updated>2020-10-16T15:48:19Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Plan ===&lt;br /&gt;
&lt;br /&gt;
Our test plan are mostly manual. There are two reasons why we choose UI testing:&lt;br /&gt;
&lt;br /&gt;
As we only change the layout of several views. We can only test them from UI testing.&lt;br /&gt;
The existing templates view_my_score are also tested with UI, without any Rspec testing.&lt;br /&gt;
There are two test cases for UI testing.&lt;br /&gt;
&lt;br /&gt;
To Test UI for student View&lt;br /&gt;
Log-in as Student.&lt;br /&gt;
Go to Assignment&lt;br /&gt;
Click Your scores&lt;br /&gt;
Click show reviews&lt;br /&gt;
To Test UI for instructor View&lt;br /&gt;
Log-in as Instructor.&lt;br /&gt;
Go to Manage Assignments&lt;br /&gt;
Click on the review report of a particular assignment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135253</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135253"/>
		<updated>2020-10-16T15:47:42Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Important Links ===&lt;br /&gt;
1. Github repo: https://github.com/lgdeloss/expertiza&lt;br /&gt;
2. Corresponding pull request: https://github.com/expertiza/expertiza/pull/1805&lt;br /&gt;
3. Video showing the changes and the effect: https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135252</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135252"/>
		<updated>2020-10-16T15:39:39Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vizualize the change [Video] ===&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=iaO2sowXTB0&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135140</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=135140"/>
		<updated>2020-10-14T03:03:32Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Issues with previous pull: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files modified in this project ===&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.haml&lt;br /&gt;
*app/view/pop_up/team_users_popup.html.erb&lt;br /&gt;
*app/controllers/popup_controller.rb [Hot Fix] &lt;br /&gt;
&lt;br /&gt;
The previous implementation involved having a haml file with bare HTML. [app/view/pop_up/team_users_popup.html.haml]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%div&lt;br /&gt;
  %script{:src=&amp;gt;&amp;quot;/assets/team_users_popup.js&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
  %h3&lt;br /&gt;
    Members of #{@team.name}&lt;br /&gt;
  %table{:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
    - if @team_users.empty?&lt;br /&gt;
      %tr No team members&lt;br /&gt;
    - else&lt;br /&gt;
      - @team_users.each do |t|&lt;br /&gt;
        %tr&lt;br /&gt;
          %td&lt;br /&gt;
            \- #{User.find(t.user_id).fullname}&lt;br /&gt;
  - (1..@assignment.num_review_rounds).each do |round|&lt;br /&gt;
    - next if instance_variable_get('@response_round_' + round.to_s).nil?&lt;br /&gt;
    - if instance_variable_get('@scores_round_' + round.to_s).nil?&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} No review done yet.&lt;br /&gt;
      %br/&lt;br /&gt;
      %tr&lt;br /&gt;
        %th{:align =&amp;gt; &amp;quot;left&amp;quot;} Reviewer score&lt;br /&gt;
      %tr&lt;br /&gt;
        %td{:align =&amp;gt; &amp;quot;center&amp;quot;} --&lt;br /&gt;
      %br/&lt;br /&gt;
    - else&lt;br /&gt;
      %h3{:style=&amp;gt;&amp;quot;display:inline-block&amp;quot;}= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot;&lt;br /&gt;
      - response_id = instance_variable_get('@response_id_round_' + round.to_s).to_s&lt;br /&gt;
      - response = Response.find(response_id)&lt;br /&gt;
      - if response.visibility=='public'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btn&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;publish_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Mark as Example&lt;br /&gt;
      - elsif response.visibility=='published'&lt;br /&gt;
        %button{ :id=&amp;gt;&amp;quot;btnun&amp;quot;+round.to_s, :onclick=&amp;gt;&amp;quot;suppress_example_review(this)&amp;quot;, :data =&amp;gt; { :response_id =&amp;gt; response_id }, :style=&amp;gt;&amp;quot;float:right&amp;quot; } Unmark as Example&lt;br /&gt;
&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;, :border =&amp;gt; &amp;quot;1px solid #ccc&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th{:align =&amp;gt; &amp;quot;left&amp;quot;, :width =&amp;gt; &amp;quot;50%&amp;quot;} Question&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;5%&amp;quot;} Score&lt;br /&gt;
          %th{:width =&amp;gt; &amp;quot;45%&amp;quot;} Comments&lt;br /&gt;
        - instance_variable_get('@scores_round_' + round.to_s).each do |answer|&lt;br /&gt;
          %tr&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.question.txt&lt;br /&gt;
            - if answer.question.is_a?(ScoredQuestion)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                = answer.answer&lt;br /&gt;
                \/#{instance_variable_get('@max_score_round_' + round.to_s)}&lt;br /&gt;
            - elsif answer.question.is_a?(Checkbox)&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer==0 ? image_tag(&amp;quot;delete_icon.png&amp;quot;): image_tag(&amp;quot;Check-icon.png&amp;quot;)&lt;br /&gt;
            -else&lt;br /&gt;
              %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
                =answer.answer&lt;br /&gt;
            %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
              = answer.comments&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Reviewer Score (Σ weighted score/Σ weighted available score)&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;center&amp;quot;}&lt;br /&gt;
            = instance_variable_get('@sum_round_' + round.to_s)&lt;br /&gt;
            \/#{instance_variable_get('@total_possible_round_' + round.to_s)}&lt;br /&gt;
          %td{:align =&amp;gt; &amp;quot;left&amp;quot;}&lt;br /&gt;
            \= #{instance_variable_get('@total_percentage_round_' + round.to_s)}&lt;br /&gt;
      %br/&lt;br /&gt;
      %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
        %tr&lt;br /&gt;
          %th Additional Comment&lt;br /&gt;
        %tr&lt;br /&gt;
          - additional_comment = Response.find(instance_variable_get('@response_id_round_' + round.to_s)).additional_comment&lt;br /&gt;
          %td= additional_comment.nil? ? 'No Comments' : additional_comment.html_safe&lt;br /&gt;
      %hr/&lt;br /&gt;
  %br/&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmMark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %h5{:class=&amp;gt;&amp;quot;col-md-11&amp;quot;}&lt;br /&gt;
    %strong Select the assignments for which you want to mark these reviews as samples:&lt;br /&gt;
    %br/&lt;br /&gt;
    %table{:class =&amp;gt; &amp;quot;general&amp;quot;,:width =&amp;gt; &amp;quot;100%&amp;quot;}&lt;br /&gt;
      %tr&lt;br /&gt;
        %td&lt;br /&gt;
        %th Assignments&lt;br /&gt;
      - @similar_assignments.each do |assignment|&lt;br /&gt;
        %tr&lt;br /&gt;
          - @course_name = !assignment.course.nil? ? assignment.course.name : &amp;quot;&amp;quot;&lt;br /&gt;
          %td= check_box_tag &amp;quot;published_assignments&amp;quot;, assignment.id&lt;br /&gt;
          %td= label_tag &amp;quot;#{@course_name} : #{assignment.name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  %div{:id=&amp;gt;&amp;quot;dialogConfirmUnmark&amp;quot;,:class=&amp;gt;&amp;quot;col-md-12&amp;quot;}&lt;br /&gt;
    %div{:class=&amp;gt;&amp;quot;col-md-12&amp;quot;,:id=&amp;gt;&amp;quot;similar_assignments_popup&amp;quot;}&lt;br /&gt;
      %p&lt;br /&gt;
        This will remove this review as example for all assignments. Continue?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  .footer&lt;br /&gt;
    = link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We replaced this with an existing view following the DRY principle [app/view/pop_up/team_users_popup.html.erb]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;h3&amp;gt;&lt;br /&gt;
    Members of &amp;lt;%= @team.name %&amp;gt;&lt;br /&gt;
  &amp;lt;/h3&amp;gt;&lt;br /&gt;
  &amp;lt;% (1..@assignment.num_review_rounds).each do |round| %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;%= &amp;quot;Reviewed by #{User.find(@reviewer_id).fullname} (Round #{round})&amp;quot; %&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;% instance_variable_get('@scores_round_' + round.to_s).each do |answer| %&amp;gt;&lt;br /&gt;
      &amp;lt;!-- display_as_html() does all of the styling for response objects--&amp;gt;&lt;br /&gt;
      &amp;lt;%= answer.response.display_as_html() %&amp;gt;&lt;br /&gt;
      &amp;lt;% break %&amp;gt;&lt;br /&gt;
      &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;footer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;%= link_to 'Back', :controller=&amp;gt; 'review_mapping', :action=&amp;gt;'response_report', :id=&amp;gt;params[:assignment_id] %&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134566</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134566"/>
		<updated>2020-10-11T18:07:33Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Issues with previous pull: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
* https://tinyurl.com/yyxkjsy3&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;&lt;br /&gt;
Currently, we are working with Nisarg to figure out which html.erb file to touch and render the view from. The project is on a hiatus until Nisarg gets a response from the active Expertiza developers.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134565</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134565"/>
		<updated>2020-10-11T18:07:02Z</updated>

		<summary type="html">&lt;p&gt;Draghun: /* Issues with previous pull: https://tinyurl.com/yxkevycq */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: === &lt;br /&gt;
[https://tinyurl.com/yyxkjsy3]&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;&lt;br /&gt;
Currently, we are working with Nisarg to figure out which html.erb file to touch and render the view from. The project is on a hiatus until Nisarg gets a response from the active Expertiza developers.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134564</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134564"/>
		<updated>2020-10-11T18:05:59Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Issues with previous pull: https://tinyurl.com/yxkevycq === &lt;br /&gt;
&lt;br /&gt;
* Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
* No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
* HTML codes [Breaks] are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;&lt;br /&gt;
Currently, we are working with Nisarg to figure out which html.erb file to touch and render the view from. The project is on a hiatus until Nisarg gets a response from the active Expertiza developers.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134562</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134562"/>
		<updated>2020-10-11T18:02:29Z</updated>

		<summary type="html">&lt;p&gt;Draghun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team members ==&lt;br /&gt;
# Luis Delossantos (ldeloss@ncsu.edu)&lt;br /&gt;
# Dhanraj Raghunathan (draghun@ncsu.edu)&lt;br /&gt;
# Mentor: Nisarg Chokshi (nmchoks2@ncsu.edu)&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose and Scope ===&lt;br /&gt;
&lt;br /&gt;
Expertiza assignments are based on a peer review system where the instructor creates rubrics for an assignment through questionnaires which students use to review other students' submissions. The author of the submission is given an opportunity to provide feedback about these reviews. Expertiza displays reviews (i) to the team who was reviewed, and (ii) to the reviewer.  A student user can see all the reviews of his/her team’s project.  The instructor can see all the reviews of everyone’s project.  The instructor also has access to a Review report, which shows, for each reviewer, all the reviews that (s)he wrote. The score report and review report use different code so UI is non-orthogonal, it would be great if we can follow same UI structure for score and review report which also reduce the DRY problems.&lt;br /&gt;
&lt;br /&gt;
Exact issue on Github - https://tinyurl.com/y5xjj6ov&lt;br /&gt;
&lt;br /&gt;
=== Task Description ===&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
* Currently Review report uses its own code to display reviews. This a pretty basic view, and it does not interpret HTML codes. It should be changed so that it calls the usual code that is used for displaying reviews, that gives the circle with the score inside.&lt;br /&gt;
&lt;br /&gt;
==== Task ====&lt;br /&gt;
Currently, if you pull up a review report, and then click on one of the teams reviewed, e.g., the first one, you get a report that looks like this:&lt;br /&gt;
[[File:Team user popup before.png]]&lt;br /&gt;
&lt;br /&gt;
We need to change the views to existing templates in view_my_scores pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For student view the UI is consistent in displaying reviews they have done and reviews they have received but for instructor's view the review report follows different UI and have different code. To make the UI consistent we have decided to choose the UI design of student view as the base and modify the UI design for review report in instructor's view. This will allow us to use the same code in both views, thereby following DRY principle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Updated View:&lt;br /&gt;
&lt;br /&gt;
[[File:Team user popup after.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Issue with previous pull: https://tinyurl.com/yxkevycq &lt;br /&gt;
&lt;br /&gt;
1) Code for displaying a review is essentially copied instead of parametrized and reused, violating the DRY principle.&lt;br /&gt;
2) No new tests added although they do have a well detailed manual test plan. &lt;br /&gt;
3) HTML codes (&amp;lt;b&amp;gt;) are left visible in the view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, we are working with Nisarg to figure out which html.erb file to touch and render the view from. The project is on a hiatus until Nisarg gets a response from the active Expertiza developers.&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134559</id>
		<title>CSC/ECE 517 Fall 2020 - E2060. Review report should link to the usual view for reviews</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2020_-_E2060._Review_report_should_link_to_the_usual_view_for_reviews&amp;diff=134559"/>
		<updated>2020-10-11T17:55:43Z</updated>

		<summary type="html">&lt;p&gt;Draghun: Created page with &amp;quot;== Introduction ==  Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Expertiza https://expertiza.ncsu.edu/ is an open-source web application to create re-usable learning objects through peer-reviews to facilitate incremental learning. Students can submit learning objects such as articles, wiki pages, repository links and with the help of peer reviews, improve them. The project has been developed using the Ruby on Rails https://en.wikipedia.org/wiki/Ruby_on_Rails framework and is supported by the [http://www.nsf.gov National Science Foundation].&lt;/div&gt;</summary>
		<author><name>Draghun</name></author>
	</entry>
</feed>