MDL-47980 gradebook: add labels and legends missing from single view

This commit is contained in:
Jetha Chan 2014-11-05 13:43:02 +08:00
parent dc3fab74ae
commit dd01789b4f
6 changed files with 98 additions and 10 deletions

View file

@ -157,12 +157,25 @@ abstract class screen {
public function make_toggle($key) { public function make_toggle($key) {
$attrs = array('href' => '#'); $attrs = array('href' => '#');
// Do proper lang strings for title attributes exist for the given key?
$strmanager = \get_string_manager();
$titleall = get_string('all');
$titlenone = get_string('none');
if ($strmanager->string_exists(strtolower($key) . 'all', 'gradereport_singleview')) {
$titleall = get_string(strtolower($key) . 'all', 'gradereport_singleview');
}
if ($strmanager->string_exists(strtolower($key) . 'none', 'gradereport_singleview')) {
$titlenone = get_string(strtolower($key) . 'none', 'gradereport_singleview');
}
$all = html_writer::tag('a', get_string('all'), $attrs + array( $all = html_writer::tag('a', get_string('all'), $attrs + array(
'class' => 'include all ' . $key 'class' => 'include all ' . $key,
'title' => $titleall
)); ));
$none = html_writer::tag('a', get_string('none'), $attrs + array( $none = html_writer::tag('a', get_string('none'), $attrs + array(
'class' => 'include none ' . $key 'class' => 'include none ' . $key,
'title' => $titlenone
)); ));
return html_writer::tag('span', "$all / $none", array( return html_writer::tag('span', "$all / $none", array(

View file

@ -99,9 +99,10 @@ class select extends screen {
); );
$url = new moodle_url('/grade/report/singleview/index.php', $params); $url = new moodle_url('/grade/report/singleview/index.php', $params);
$html .= $OUTPUT->heading($screen->description());
$html .= $OUTPUT->single_select($url, 'itemid', $options); $select = new \single_select($url, 'itemid', $options);
$select->set_label($screen->description());
$html .= $OUTPUT->render($select);
} }
if (empty($html)) { if (empty($html)) {

View file

@ -85,22 +85,56 @@ class bulk_insert extends element {
* @return string HTML * @return string HTML
*/ */
public function html() { public function html() {
$insertgrade = get_string('bulkinsertgrade', 'gradereport_singleview'); $insertvalue = get_string('bulkinsertvalue', 'gradereport_singleview');
$insertappliesto = get_string('bulkappliesto', 'gradereport_singleview'); $insertappliesto = get_string('bulkappliesto', 'gradereport_singleview');
$apply = html_writer::checkbox($this->applyname, 1, false, $insertgrade);
$insertoptions = array( $insertoptions = array(
'all' => get_string('all_grades', 'gradereport_singleview'), 'all' => get_string('all_grades', 'gradereport_singleview'),
'blanks' => get_string('blanks', 'gradereport_singleview') 'blanks' => get_string('blanks', 'gradereport_singleview')
); );
$selectlabel = html_writer::label(
$insertappliesto,
$this->selectname
);
$select = html_writer::select( $select = html_writer::select(
$insertoptions, $this->selectname, 'blanks', false $insertoptions, $this->selectname, 'blanks', false
); );
$label = html_writer::tag('label', $insertappliesto); $textlabel = html_writer::label(
$insertvalue,
$this->insertname
);
$text = new text_attribute($this->insertname, "0", 'bulk'); $text = new text_attribute($this->insertname, "0", 'bulk');
return implode(' ', array($apply, $text->html(), $label, $select));
$inner = implode(' ', array(
$selectlabel,
$select,
$textlabel,
$text->html()
));
$fieldset = html_writer::tag(
'fieldset',
html_writer::tag(
'legend',
get_string('bulklegend', 'gradereport_singleview'),
array(
'class' => 'accesshide'
)
) .
$inner
);
$apply = html_writer::checkbox(
$this->applyname,
1,
false,
get_string('bulkperform', 'gradereport_singleview')
);
$applydiv = html_writer::div($apply, 'enable');
return $applydiv . $fieldset;
} }
/** /**

View file

@ -26,8 +26,10 @@
$string['all_grades'] = 'All grades'; $string['all_grades'] = 'All grades';
$string['assessmentname'] = 'Assessment Name'; $string['assessmentname'] = 'Assessment Name';
$string['blanks'] = 'Empty grades'; $string['blanks'] = 'Empty grades';
$string['bulkappliesto'] = 'for'; $string['bulkappliesto'] = 'For';
$string['bulkinsertgrade'] = 'Bulk insert'; $string['bulkinsertvalue'] = 'Insert value';
$string['bulklegend'] = 'Bulk insert';
$string['bulkperform'] = 'Perform bulk insert';
$string['bulkfor'] = 'Grades for {$a}'; $string['bulkfor'] = 'Grades for {$a}';
$string['exclude'] = 'Exclude'; $string['exclude'] = 'Exclude';
$string['excludeall'] = 'Exclude all grades'; $string['excludeall'] = 'Exclude all grades';

View file

@ -1,5 +1,6 @@
.path-grade-report-singleview div.generalbox { .path-grade-report-singleview div.generalbox {
margin: 0 20px 15px 20px; margin: 0 20px 15px 20px;
text-align: center;
} }
.path-grade-report-singleview div.generalbox div.singleselect form div { .path-grade-report-singleview div.generalbox div.singleselect form div {
@ -60,3 +61,30 @@
.dir-rtl.path-grade-report-singleview .generaltable th { .dir-rtl.path-grade-report-singleview .generaltable th {
text-align: right; text-align: right;
} }
.path-grade-report-singleview div.generalbox form div.singleview_bulk {
display: inline-block;
text-align: left;
margin-bottom: 1em;
}
.dir-rtl.path-grade-report-singleview div.generalbox form div.singleview_bulk {
text-align: right;
}
.path-grade-report-singleview .singleview_bulk div > *,
.path-grade-report-singleview .singleview_bulk fieldset > * {
display: inline-block;
vertical-align: middle;
margin: 0;
}
.path-grade-report-singleview .singleview_bulk > fieldset {
display: block;
}
.path-grade-report-singleview div.generalbox form .singleview_bulk > div.enable {
text-align: left;
}
.dir-rtl.path-grade-report-singleview div.generalbox form .singleview_bulk > div.enable {
text-align: right;
}

View file

@ -95,6 +95,16 @@ Feature: We can use Single view
And I follow "Single view for Student 1" And I follow "Single view for Student 1"
Then I should see "Student 1" Then I should see "Student 1"
@javascript
Scenario: I can bulk update grades.
Given I follow "Single view for Student 1"
Then I should see "Student 1"
When I click on "All grades" "option"
And I set the field "Insert value" to "1.0"
And I click on "Perform bulk insert" "checkbox"
And I press "Update"
Then I should see "Grades were set for 9 items"
Scenario: Navigation works in the Single view. Scenario: Navigation works in the Single view.
Given I follow "Single view for Student 1" Given I follow "Single view for Student 1"
Then I should see "Student 1" Then I should see "Student 1"