Navigation Menu

Skip to content

Commit

Permalink
MFC: MDL-11966 implemented dategraded and datesubmitted, tweaked alte…
Browse files Browse the repository at this point in the history
…ring of grades depending in hidden grades

MDL-11974 improved gradebook CSS
  • Loading branch information
skodak committed Nov 1, 2007
1 parent f6d8678 commit 2199273
Show file tree
Hide file tree
Showing 17 changed files with 240 additions and 111 deletions.
2 changes: 1 addition & 1 deletion grade/report/grader/index.php
Expand Up @@ -159,7 +159,7 @@
print_paging_bar($numusers, $report->page, $studentsperpage, $report->pbarurl);
}

$reporthtml = '<table class="gradestable flexible boxaligncenter generaltable">';
$reporthtml = '<table id="user-grades" class="gradestable flexible boxaligncenter generaltable">';
$reporthtml .= $report->get_headerhtml();
$reporthtml .= $report->get_rangehtml();
$reporthtml .= $report->get_studentshtml();
Expand Down
4 changes: 2 additions & 2 deletions grade/report/grader/lib.php
Expand Up @@ -681,9 +681,9 @@ function get_studentshtml() {
// MDL-11274
// Hide grades in the grader report if the current grader doesn't have 'moodle/grade:viewhidden'
if (!$this->canviewhidden and $grade->is_hidden()) {
if (!empty($CFG->grade_hiddenasdate) and !is_null($grade->finalgrade) and !$item->is_category_item() and !$item->is_course_item()) {
if (!empty($CFG->grade_hiddenasdate) and $grade_grade->get_datesubmitted() and !$item->is_category_item() and !$item->is_course_item()) {
// the problem here is that we do not have the time when grade value was modified, 'timemodified' is general modification date for grade_grades records
$studentshtml .= '<td class="cell c'.$columncount++.'">'.userdate($grade->timecreated,get_string('strftimedatetimeshort')).'</td>';
$studentshtml .= '<td class="cell c'.$columncount++.'"><span class="datesubmitted">'.userdate($grade_grade->get_datesubmitted(),get_string('strftimedatetimeshort')).'</span></td>';
} else {
$studentshtml .= '<td class="cell c'.$columncount++.'">-</td>';
}
Expand Down
68 changes: 38 additions & 30 deletions grade/report/grader/styles.php
@@ -1,43 +1,43 @@

.grade-report-grader .catlevel1 {
.grade-report-grader table#user-grades .catlevel1 {
background-color: #ffffff;
}
.grade-report-grader .catlevel2 {
.grade-report-grader table#user-grades .catlevel2 {
background-color: #eeeeee;
}
.grade-report-grader .catlevel3 {
.grade-report-grader table#user-grades .catlevel3 {
background-color: #dddddd;
}

.grade-report-grader td.overridden {
.grade-report-grader table#user-grades td.overridden {
background-color: #dddddd;
}

.grade-report-grader .gradestable tr.avg td.cell {
.grade-report-grader table#user-grades tr.avg td.cell {
background-color: #efefff;
}

.grade-report-grader .gradestable tr.groupavg td.cell {
.grade-report-grader table#user-grades tr.groupavg td.cell {
background-color: #efffef;
}

.grade-report-grader .gradestable tr.groupavg td.cell {
.grade-report-grader table#user-grades tr.groupavg td.cell {
font-weight: bold;
color: #006400;
}

.grade-report-grader .gradestable tr.avg td.cell {
.grade-report-grader table#user-grades tr.avg td.cell {
font-weight: bold;
color: #00008B;
}

.grade-report-grader .gradestable td.cat,
.grade-report-grader .gradestable td.course {
.grade-report-grader table#user-grades td.cat,
.grade-report-grader table#user-grades td.course {
font-weight: bold;
}


.grade-report-grader table {
.grade-report-grader table#user-grades {
border-width:1px;
border-style:solid;
margin-top: 20px;
Expand Down Expand Up @@ -71,49 +71,49 @@
text-align: center;
}

.grade-report-grader table td {
.grade-report-grader table#user-grades td {
border-width:1px;
border-style:solid;
}

.grade-report-grader tr.heading {
.grade-report-grader table#user-grades tr.heading {
border-width:0px 0px 0px 0px;
border-style:solid;
}

.grade-report-grader .heading td {
.grade-report-grader table#user-grades .heading td {
border-width:0px 0px 0px 0px;
border-style:solid;
}

.grade-report-grader th.category {
.grade-report-grader table#user-grades th.category {
border-width:1px 1px 0px 1px;
border-style:solid;
}

.grade-report-grader th.user {
.grade-report-grader table#user-grades th.user {
border-width:0px 0px 1px 0px;
border-style:solid;
}

.grade-report-grader th.categoryitem,
.grade-report-grader th.courseitem,
.grade-report-grader td.topleft {
.grade-report-grader table#user-grades th.categoryitem,
.grade-report-grader table#user-grades th.courseitem,
.grade-report-grader table#user-grades td.topleft {
border-width:0px 1px 0px 1px;
border-style:solid;
}

.grade-report-grader td.fillerfirst {
.grade-report-grader table#user-grades td.fillerfirst {
border-width:0px 0px 0px 1px;
border-style:solid;
}

.grade-report-grader td.fillerlast {
.grade-report-grader table#user-grades td.fillerlast {
border-width:0px 1px 0px 0px;
border-style:solid;
}

.grade-report-grader th.item {
.grade-report-grader table#user-grades th.item {
border-width:1px 1px 1px 1px;
border-style:solid;
}
Expand All @@ -123,39 +123,47 @@
margin-left: 20px;
}

.grade-report-grader table.gradestable {
.grade-report-grader table#user-grades {
margin-left:auto;
margin-right:auto;
}

.grade-report-grader .gradestable th.user {
.grade-report-grader table#user-grades th.user {
text-align:left;
}

.grade-report-grader .gradestable td {
.grade-report-grader table#user-grades td {
text-align:right;
}

.grade-report-grader th.range {
.grade-report-grader table#user-grades th.range {
border-width:1px 1px 1px 1px;
border-style:solid;
}

.grade-report-grader .userpic {
.grade-report-grader table#user-grades .userpic {
display: inline;
margin-right: 10px;
}

.grade-report-grader .quickfeedback {
.grade-report-grader table#user-grades .quickfeedback {
border: #000000 1px dashed;
}

.grade-report-grader #siteconfiglink {
text-align: right;
}

.grade-report-grader .hidden,
.grade-report-grader .hidden a {
.grade-report-grader table#user-grades .hidden,
.grade-report-grader table#user-grades .hidden a {
color:#aaaaaa;
}

.grade-report-grader table#user-grades .datesubmitted {
font-size: 0.7em;
}

.grade-report-grader table#user-grades td.cell {
padding-left: 5px;
padding-right: 5px;
}
43 changes: 29 additions & 14 deletions grade/report/user/lib.php
Expand Up @@ -200,16 +200,31 @@ function fill_table() {

$data = array();

// all users should know which items are still hidden
$hidden = '';
if ($grade_item->is_hidden()) {
$hidden = ' hidden ';
}

/// prints grade item name
if ($grade_item->is_course_item() or $grade_item->is_category_item()) {
$data[] = '<span class="'.$class.'">'.$grade_item->get_name().'</span>';
$data[] = '<span class="'.$hidden.$class.'">'.$grade_item->get_name().'</span>';
} else {
$data[] = '<span class="'.$class.'">'.$this->get_module_link($grade_item->get_name(), $grade_item->itemmodule, $grade_item->iteminstance).'</span>';
$data[] = '<span class="'.$hidden.$class.'">'.$this->get_module_link($grade_item->get_name(), $grade_item->itemmodule, $grade_item->iteminstance).'</span>';
}

/// prints category
$cat = $grade_item->get_parent_category();
$data[] = '<span class="'.$class.'">'.$cat->get_name().'</span>';
$data[] = '<span class="'.$hidden.$class.'">'.$cat->get_name().'</span>';

$hidden = '';
if ($grade_item->is_hidden()) {
// can not see grades in hidden items
$hidden = ' hidden ';
} else if ($canviewhidden and $grade_grade->is_hidden()) {
// if user can see hidden grades, indicate which ones are hidden
$hidden = ' hidden ';
}

/// prints the grade
if ($grade_grade->is_excluded()) {
Expand All @@ -219,34 +234,34 @@ function fill_table() {
}

if ($grade_item->needsupdate) {
$data[] = '<span class="'.$class.' gradingerror">'.get_string('error').'</span>';
$data[] = '<span class="'.$hidden.$class.' gradingerror">'.get_string('error').'</span>';

} else if (!empty($CFG->grade_hiddenasdate) and !is_null($grade_grade->finalgrade) and !$canviewhidden and $grade_grade->is_hidden()
} else if (!empty($CFG->grade_hiddenasdate) and $grade_grade->get_datesubmitted() and !$canviewhidden and $grade_grade->is_hidden()
and !$grade_item->is_category_item() and !$grade_item->is_course_item()) {
// the problem here is that we do not have the time when grade value was modified, 'timemodified' is general modification date for grade_grades records
$data[] = '<span class="'.$class.' gradeddate">'.$excluded.get_string('gradedon', 'grades', userdate($grade_grade->timemodified, get_string('strftimedatetimeshort'))).'</span>';
$data[] = '<span class="'.$hidden.$class.' datesubmitted">'.$excluded.get_string('submittedon', 'grades', userdate($grade_grade->get_datesubmitted(), get_string('strftimedatetimeshort'))).'</span>';

} else {
$data[] = '<span class="'.$class.'">'.$excluded.grade_format_gradevalue($gradeval, $grade_item, true);
$data[] = '<span class="'.$hidden.$class.'">'.$excluded.grade_format_gradevalue($gradeval, $grade_item, true);
}

/// prints percentage
if ($grade_item->needsupdate) {
$data[] = '<span class="'.$class.'gradingerror">'.get_string('error').'</span>';
$data[] = '<span class="'.$hidden.$class.'gradingerror">'.get_string('error').'</span>';

} else {
$data[] = '<span class="'.$class.'">'.grade_format_gradevalue($gradeval, $grade_item, true, GRADE_DISPLAY_TYPE_PERCENTAGE).'</span>';
$data[] = '<span class="'.$hidden.$class.'">'.grade_format_gradevalue($gradeval, $grade_item, true, GRADE_DISPLAY_TYPE_PERCENTAGE).'</span>';
}

/// prints rank
if ($this->showrank) {
// TODO: this is broken if hidden grades present!!
if ($grade_item->needsupdate) {
$data[] = '<span class="'.$class.'gradingerror">'.get_string('error').'</span>';
$data[] = '<span class="'.$hidden.$class.'gradingerror">'.get_string('error').'</span>';

} else if (is_null($gradeval)) {
// no grade, no rank
$data[] = '<span class="'.$class.'">-</span>';;
$data[] = '<span class="'.$hidden.$class.'">-</span>';;

} else {
/// find the number of users with a higher grade
Expand All @@ -256,16 +271,16 @@ function fill_table() {
AND itemid = {$grade_item->id}";
$rank = count_records_sql($sql) + 1;

$data[] = '<span class="'.$class.'">'."$rank/$numusers".'</span>';
$data[] = '<span class="'.$hidden.$class.'">'."$rank/$numusers".'</span>';
}
}

/// prints feedback
if (empty($grade_grade->feedback) or (!$canviewhidden and $grade_grade->is_hidden())) {
$data[] = '<div class="feedbacktext">&nbsp;</div>';
$data[] = '<div class="'.$hidden.'feedbacktext">&nbsp;</div>';

} else {
$data[] = '<div class="feedbacktext">'.format_text($grade_grade->feedback, $grade_grade->feedbackformat).'</div>';
$data[] = '<div class="'.$hidden.'feedbacktext">'.format_text($grade_grade->feedback, $grade_grade->feedbackformat).'</div>';
}

$this->table->add_data($data);
Expand Down
11 changes: 8 additions & 3 deletions grade/report/user/styles.php
@@ -1,10 +1,10 @@

.grade-report-user .gradeddate {
.grade-report-user table#user-grade .datesubmitted {
font-size: 0.7em;
}

.grade-report-user .courseitem,
.grade-report-user .categoryitem {
.grade-report-user table#user-grade .courseitem,
.grade-report-user table#user-grade .categoryitem {
font-weight: bold;
}

Expand All @@ -13,3 +13,8 @@
padding-right: 5px;
}

/* this must be last if we want to override other category and course item colors */
.grade-report-user table#user-grade .hidden,
.grade-report-user table#user-grade .hidden a {
color:#aaaaaa;
}
7 changes: 4 additions & 3 deletions lang/en_utf8/grades.php
Expand Up @@ -77,7 +77,7 @@
$string['configgradeletter'] = 'A letter or other symbol used to represent a range of grades.';
$string['configgradeletterdefault'] = 'A letter or other symbol used to represent a range of grades. Leave this field empty to use the site default (currently $a).';
$string['configgradepublishing'] = 'Enable publishing in exports and imports: Exported grades can be accessed by accessing a URL, without having to log on to a Moodle site. Grades can be imported by accessing such a URL (which means that a moodle site can import grades published by another site). By default only administrators may use this feature, please educate users before adding required capabilities to other roles (dangers of bookmark sharing and download accelerators, IP restrictions, etc.).';
$string['confighiddenasdate'] = 'If user can not see hidden grades show date instead of \'-\'.';
$string['confighiddenasdate'] = 'If user can not see hidden grades show date of submission instead of \'-\'.';
$string['configmeanselection'] = 'Select which types of grades will be included in the column averages. Cells with no grade can be ignored, or counted as 0 (default setting).';
$string['configprofilereport'] = 'Grade report used on user profile page.';
$string['configquickfeedback'] = 'Quick Feedback adds a text input element in each grade cell on the grader report, allowing you to edit many grades at once. You can then click the Update button to perform all these changes at once, instead of one at a time.';
Expand Down Expand Up @@ -172,7 +172,7 @@
$string['gradecategory'] = 'Grade Category';
$string['gradecategoryhelp'] = 'Grade Category Help';
$string['gradecategorysettings'] = 'Grade category settings';
$string['gradedon'] = 'Graded $a';
$string['gradedon'] = 'Graded: $a';
$string['gradedisplay'] = 'Grade display';
$string['gradedisplaytype'] = 'Grade display type';
$string['gradeexceptions'] = 'Grade Exceptions';
Expand Down Expand Up @@ -213,7 +213,7 @@
$string['gradeweighthelp'] = 'Grade Weight Help';
$string['groupavg'] = 'Group average';
$string['hidden'] = 'Hidden';
$string['hiddenasdate'] = 'Show date for hidden grades';
$string['hiddenasdate'] = 'Show submitted date for hidden grades';
$string['hiddenuntil'] = 'Hidden until';
$string['hiddenuntildate'] = 'Hidden until: $a';
$string['hideadvanced'] = 'Hide Advanced Features';
Expand Down Expand Up @@ -416,6 +416,7 @@
$string['studentsperpage'] = 'Students per page';
$string['subcategory'] = 'Normal Category';
$string['submissions'] = 'Submissions';
$string['submittedon'] = 'Submitted: $a';
$string['synclegacygrades'] = 'Synchronise legacy grades';
$string['topcategory'] = 'Super Category';
$string['total'] = 'Total';
Expand Down
8 changes: 7 additions & 1 deletion lib/grade/grade_category.php
Expand Up @@ -213,6 +213,8 @@ function update($source=null) {
$this->force_regrading();
}

$this->timemodified = time();

return parent::update($source);
}

Expand Down Expand Up @@ -290,6 +292,8 @@ function insert($source=null) {

$this->path = null;

$this->timecreated = $this->timemodified = time();

if (!parent::insert($source)) {
debugging("Could not insert this category: " . print_r($this, true));
return false;
Expand Down Expand Up @@ -318,6 +322,8 @@ function insert_course_category($courseid) {

$this->apply_forced_settings();

$this->timecreated = $this->timemodified = time();

if (!parent::insert('system')) {
debugging("Could not insert this category: " . print_r($this, true));
return false;
Expand Down Expand Up @@ -446,7 +452,7 @@ function generate_grades($userid=null) {

/**
* internal function for category grades aggregation
*
*
* @param int $userid
* @param array $items
* @param array $grade_values
Expand Down

0 comments on commit 2199273

Please sign in to comment.