Commit eb094edf by cahrens Committed by Andy Armstrong

Only show full grade section if step is enabled.

TNL-3889
parent 6eb476ca
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
<div class="wrapper--staff-toolbar"> <div class="wrapper--staff-toolbar">
<button class="ui-staff__button button-staff-tools" data-panel="openassessment__staff-tools">{% trans "Manage Individual Learners" %}</button> <button class="ui-staff__button button-staff-tools" data-panel="openassessment__staff-tools">{% trans "Manage Individual Learners" %}</button>
<button class="ui-staff__button button-staff-info" data-panel="openassessment__staff-info">{% trans "View Assignment Statistics" %}</button> <button class="ui-staff__button button-staff-info" data-panel="openassessment__staff-info">{% trans "View Assignment Statistics" %}</button>
<button class="ui-staff__button button-staff-grading" data-panel="openassessment__staff-grading">{% trans "Grade Available Responses" %}</button> {% if staff_assessment_required %}
<button class="ui-staff__button button-staff-grading" data-panel="openassessment__staff-grading">{% trans "Grade Available Responses" %}</button>
{% endif %}
</div> </div>
<div class="openassessment__staff-tools wrapper--staff-tools wrapper--ui-staff is--hidden"> <div class="openassessment__staff-tools wrapper--staff-tools wrapper--ui-staff is--hidden">
......
...@@ -162,6 +162,10 @@ class StaffAreaMixin(object): ...@@ -162,6 +162,10 @@ class StaffAreaMixin(object):
'start': start_date if start_date > DISTANT_PAST else None, 'start': start_date if start_date > DISTANT_PAST else None,
'due': due_date if due_date < DISTANT_FUTURE else None, 'due': due_date if due_date < DISTANT_FUTURE else None,
}) })
# Include whether or not staff grading step is enabled.
context['staff_assessment_required'] = "staff-assessment" in self.assessment_steps
return path, context return path, context
@XBlock.json_handler @XBlock.json_handler
......
...@@ -684,6 +684,38 @@ ...@@ -684,6 +684,38 @@
"output": "oa_staff_area.html" "output": "oa_staff_area.html"
}, },
{ {
"template": "openassessmentblock/staff_area/oa_staff_area.html",
"context": {
"staff_assessment_required": true,
"status_counts": {
"self": 1,
"peer": 2,
"waiting": 3,
"done": 4
},
"num_submissions": 10,
"item_id": "test_item",
"step_dates": [
{
"step": "submission",
"start": "2014-01-01",
"due": "N/A"
},
{
"step": "peer",
"start": "2014-02-02",
"due": "N/A"
},
{
"step": "self",
"start": "2014-03-03",
"due": "2015-04-05"
}
]
},
"output": "oa_staff_area_full_grading.html"
},
{
"template": "openassessmentblock/staff_area/oa_student_info.html", "template": "openassessmentblock/staff_area/oa_student_info.html",
"context": { "context": {
"rubric_criteria": [ "rubric_criteria": [
......
...@@ -19,6 +19,7 @@ describe('OpenAssessment.StaffAreaView', function() { ...@@ -19,6 +19,7 @@ describe('OpenAssessment.StaffAreaView', function() {
// Stub server that returns dummy data for the staff info view // Stub server that returns dummy data for the staff info view
var StubServer = function() { var StubServer = function() {
this.studentTemplate = 'oa_student_info.html'; this.studentTemplate = 'oa_student_info.html';
this.staffAreaTemplate = 'oa_staff_area.html';
// Remember which fragments have been loaded // Remember which fragments have been loaded
this.fragmentsLoaded = []; this.fragmentsLoaded = [];
...@@ -28,7 +29,7 @@ describe('OpenAssessment.StaffAreaView', function() { ...@@ -28,7 +29,7 @@ describe('OpenAssessment.StaffAreaView', function() {
var server = this; var server = this;
this.fragmentsLoaded.push(component); this.fragmentsLoaded.push(component);
return $.Deferred(function(defer) { return $.Deferred(function(defer) {
var fragment = readFixtures('oa_staff_area.html'); var fragment = readFixtures(server.staffAreaTemplate);
defer.resolveWith(server, [fragment]); defer.resolveWith(server, [fragment]);
}); });
}; };
...@@ -73,13 +74,17 @@ describe('OpenAssessment.StaffAreaView', function() { ...@@ -73,13 +74,17 @@ describe('OpenAssessment.StaffAreaView', function() {
/** /**
* Create a staff area view. * Create a staff area view.
* @param serverResponse An optional fake response from the server. * @param {dict} serverResponse An optional fake response from the server.
* @param {string} staffAreaTemplate - An optional template to use.
* @returns {OpenAssessment.StaffAreaView} The staff area view. * @returns {OpenAssessment.StaffAreaView} The staff area view.
*/ */
var createStaffArea = function(serverResponse) { var createStaffArea = function(serverResponse, staffAreaTemplate) {
if (serverResponse) { if (serverResponse) {
server.data = serverResponse; server.data = serverResponse;
} }
if (staffAreaTemplate) {
server.staffAreaTemplate = staffAreaTemplate;
}
var assessmentElement = $('#openassessment').get(0); var assessmentElement = $('#openassessment').get(0);
var baseView = new OpenAssessment.BaseView(runtime, assessmentElement, server, {}); var baseView = new OpenAssessment.BaseView(runtime, assessmentElement, server, {});
var view = new OpenAssessment.StaffAreaView(assessmentElement, server, baseView); var view = new OpenAssessment.StaffAreaView(assessmentElement, server, baseView);
...@@ -204,6 +209,15 @@ describe('OpenAssessment.StaffAreaView', function() { ...@@ -204,6 +209,15 @@ describe('OpenAssessment.StaffAreaView', function() {
it('shows the correct buttons with no panels initially', function() { it('shows the correct buttons with no panels initially', function() {
var view = createStaffArea(), var view = createStaffArea(),
$buttons = $('.ui-staff__button', view.element); $buttons = $('.ui-staff__button', view.element);
expect($buttons.length).toBe(2);
expect($($buttons[0]).text().trim()).toEqual('Manage Individual Learners');
expect($($buttons[1]).text().trim()).toEqual('View Assignment Statistics');
expect(getVisibleStaffPanels(view).length).toBe(0);
});
it('shows the correct buttons for full grading with no panels initially', function() {
var view = createStaffArea({}, 'oa_staff_area_full_grading.html'),
$buttons = $('.ui-staff__button', view.element);
expect($buttons.length).toBe(3); expect($buttons.length).toBe(3);
expect($($buttons[0]).text().trim()).toEqual('Manage Individual Learners'); expect($($buttons[0]).text().trim()).toEqual('Manage Individual Learners');
expect($($buttons[1]).text().trim()).toEqual('View Assignment Statistics'); expect($($buttons[1]).text().trim()).toEqual('View Assignment Statistics');
......
...@@ -381,8 +381,6 @@ class StaffAreaTest(OpenAssessmentTest): ...@@ -381,8 +381,6 @@ class StaffAreaTest(OpenAssessmentTest):
self.assertEqual(self.staff_area_page.selected_button_names, []) self.assertEqual(self.staff_area_page.selected_button_names, [])
self.staff_area_page.click_staff_toolbar_button("staff-tools") self.staff_area_page.click_staff_toolbar_button("staff-tools")
self.assertEqual(self.staff_area_page.selected_button_names, ["MANAGE INDIVIDUAL LEARNERS"]) self.assertEqual(self.staff_area_page.selected_button_names, ["MANAGE INDIVIDUAL LEARNERS"])
self.staff_area_page.click_staff_toolbar_button("staff-grading")
self.assertEqual(self.staff_area_page.selected_button_names, ["GRADE AVAILABLE RESPONSES"])
self.staff_area_page.click_staff_toolbar_button("staff-info") self.staff_area_page.click_staff_toolbar_button("staff-info")
self.assertEqual(self.staff_area_page.selected_button_names, ["VIEW ASSIGNMENT STATISTICS"]) self.assertEqual(self.staff_area_page.selected_button_names, ["VIEW ASSIGNMENT STATISTICS"])
self.staff_area_page.click_staff_toolbar_button("staff-info") self.staff_area_page.click_staff_toolbar_button("staff-info")
...@@ -393,7 +391,6 @@ class StaffAreaTest(OpenAssessmentTest): ...@@ -393,7 +391,6 @@ class StaffAreaTest(OpenAssessmentTest):
@ddt.data( @ddt.data(
("staff-tools", "MANAGE INDIVIDUAL LEARNERS"), ("staff-tools", "MANAGE INDIVIDUAL LEARNERS"),
("staff-info", "VIEW ASSIGNMENT STATISTICS"), ("staff-info", "VIEW ASSIGNMENT STATISTICS"),
("staff-grading", "GRADE AVAILABLE RESPONSES"),
) )
@ddt.unpack @ddt.unpack
def test_staff_area_panel(self, panel_name, button_label): def test_staff_area_panel(self, panel_name, button_label):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment