CSC/ECE 517 Spring 2018- Project E1804: OSS project Yellow: Topic management: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 119: | Line 119: | ||
==== '''Further Implementation Required''' ==== | ==== '''Further Implementation Required''' ==== | ||
:: | ::While the table is able to be sorted by the header row, whenever you make a new topic the initial list of topics is not resorted right away. This leads to say E1502, a new topic just made, to be at the bottom of the list when it would normally precede say E1700, if it were in the same topic list. | ||
==== '''Testing''' ==== | ==== '''Testing''' ==== |
Revision as of 00:31, 27 March 2018
This page provides a description of our Expertiza project.
Introduction
Expertiza Background
Expertiza is a web-based framework designed in Ruby on Rails to serve as a medium for students and professors to interact, provide feedback, and manage their assignments. It facilitates all of the electronic turn-ins and provides a good place to review your peers' work.
Problem Statement
To enhance topic management for instructors and students.
- Issue 971: Change create topic UI to AJAX
- Issue 926: Sort topics by topic number in assignment#edit
- Issue 718: Allow instructions to give feedback when accepting or rejecting suggestions
Our Goals
We planned to improve the functionality such that when instructors have to manage the topics for an assignment, they can do so much quicker and more reliably.
Files Edited
- app/spec/controllers/assignments_controller_spec.rb
- app/spec/controllers/sign_up_sheet_controller_spec.rb
Issue 971
Implementation
Further Implementation Required
Testing
- For testing the newly created JSGrid, it is important to ensure it maintains correct functionality from before. To that end, we created quite a few tests that test manage topic functionality.
- Testing that if an assignment due date has passed:
- Topics are no longer editable and you can no longer add/delete topics
- Testing that if an assignment due date has passed:
- app/spec/controllers/assignments_controller_spec.rb
- For testing the newly created JSGrid, it is important to ensure it maintains correct functionality from before. To that end, we created quite a few tests that test manage topic functionality.
context 'assignment due dates have not passed' do before(:each) do due_date.due_at = DateTime.now.in_time_zone + 1.day allow(assignment.due_dates).to receive(:find_by).with(deadline_type_id: 6).and_return(due_date) end it 'allows a topic to be edited' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).to respond_to(:edit) end it 'allows a topic to be deleted' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).to respond_to(:destroy) end it 'allows a new topic to be added' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).to respond_to(:new) end end
- Testing that if an assignment due date has not passed:
- Topics are editable and you can add/delete topics
- Testing that if an assignment due date has not passed:
- app/spec/controllers/assignments_controller_spec.rb
context 'all assignment due dates have passed' do before(:each) do due_date.due_at = DateTime.now.in_time_zone - 1.day allow(assignment.due_dates).to receive(:find_by).with(deadline_type_id: 6).and_return(due_date) end it 'does not allow a topic to be edited' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).not_to respond_to(:edit) end it 'does not allow a topic to be deleted' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).not_to respond_to(:destroy) end it 'does not allow a new topic to be added' do params = {id: 1, anchor: 'tabs-2'} get :edit, params, xhr: true expect(response).not_to respond_to(:new) end end
- Testing that default topic available slots is 1
- app/spec/controllers/sign_up_sheet_controller_spec.rb
define '#new' do it 'has default available slots of 1' do params = {id: 1} get :new, params expect(response).to have_field('max_choosers', with: '1') end end
Further Testing Required
- Unfortunately we were unable to exhaustively test the topic table, but here are the things we plan to test about managing topics over the next week:
- If assignment deadline has passed, you can not add students to a topic
- Ensure students cant see which students are on other topics
- Check that Advertisement Horn shows in the table if a team has an ad open
- If you login as student, you can't add/delete topics in the table
- Unfortunately we were unable to exhaustively test the topic table, but here are the things we plan to test about managing topics over the next week:
Issue 926
Implementation
- We let JSGrid handle the sorting of topics by the headers in the table. We altered the AJAX controller to enable this sorting.
Further Implementation Required
- While the table is able to be sorted by the header row, whenever you make a new topic the initial list of topics is not resorted right away. This leads to say E1502, a new topic just made, to be at the bottom of the list when it would normally precede say E1700, if it were in the same topic list.
Testing
- There is no testing required in this aspect, since sorting is a feature of the AJAX table itself, and therefore it wouldn't make sense to test the implementation.