From 5d71ece00865b8e93e446d4be7488cdf427fc565 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Tue, 24 Jul 2007 07:43:46 +0000 Subject: [PATCH] adding some new files for grade outcomes --- grade/report/outcomes/course.html | 30 +++++++ grade/report/outcomes/course.php | 25 ++++++ grade/report/outcomes/editoutcomes.php | 14 ++- grade/report/outcomes/site.php | 117 +++++++++++++++++++++++++ grade/report/outcomes/tabs.php | 12 ++- 5 files changed, 193 insertions(+), 5 deletions(-) create mode 100755 grade/report/outcomes/course.html create mode 100755 grade/report/outcomes/course.php create mode 100755 grade/report/outcomes/site.php diff --git a/grade/report/outcomes/course.html b/grade/report/outcomes/course.html new file mode 100755 index 0000000000..25bdc4e1f6 --- /dev/null +++ b/grade/report/outcomes/course.html @@ -0,0 +1,30 @@ + + + + + + +
+ + +

+ +
+ +

+
+ +
\ No newline at end of file diff --git a/grade/report/outcomes/course.php b/grade/report/outcomes/course.php new file mode 100755 index 0000000000..b1cb29311b --- /dev/null +++ b/grade/report/outcomes/course.php @@ -0,0 +1,25 @@ +prefix.'grade_outcomes + WHERE ISNULL(courseid)'); + get_records('grade_outcomes', 'courseid', $courseid); + + check_theme_arrows(); + include_once('course.html'); + + print_footer(); +?> \ No newline at end of file diff --git a/grade/report/outcomes/editoutcomes.php b/grade/report/outcomes/editoutcomes.php index 8f995a4b32..6988a840e2 100755 --- a/grade/report/outcomes/editoutcomes.php +++ b/grade/report/outcomes/editoutcomes.php @@ -2,6 +2,8 @@ include_once('../../../config.php'); require_once $CFG->libdir.'/formslib.php'; + +// courseid needs to be passed in to know whether this should be tied to a course class edit_outcomes_form extends moodleform { function definition() { @@ -30,6 +32,8 @@ class edit_outcomes_form extends moodleform { $mform->setType('scaleid', PARAM_INT); $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); + $mform->addElement('hidden', 'courseid'); + $mform->setType('courseid', PARAM_INT); //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); @@ -39,9 +43,10 @@ class edit_outcomes_form extends moodleform { $id = optional_param('id', 0, PARAM_INT); // id of the outcome if ($courseid = optional_param('courseid', 0, PARAM_INT)) { // optional course id, if set, editting from course + $returnurl = $CFG->wwwroot."/grade/report/outcomes/course.php"; } else { // admin editting site level outcomes - $returnurl = $CFG->wwwroot."/grade/report/outcomes/settings.php"; + $returnurl = $CFG->wwwroot."/grade/report/outcomes/site.php"; } // form processing @@ -50,6 +55,11 @@ if ($id) { // form set data $mform->set_data(get_record('grade_outcomes', 'id', $id)); } +// if courseid is provided, set it in the form +if ($courseid) { + $data->courseid = $courseid; + $mform->set_data($data); +} if ($mform->is_cancelled()) { redirect($returnurl); @@ -70,4 +80,4 @@ include('tabs.php'); print_header(); $mform->display(); print_footer(); -?> +?> \ No newline at end of file diff --git a/grade/report/outcomes/site.php b/grade/report/outcomes/site.php new file mode 100755 index 0000000000..3318c32247 --- /dev/null +++ b/grade/report/outcomes/site.php @@ -0,0 +1,117 @@ +libdir.'/adminlib.php'); +require_once($CFG->libdir.'/tablelib.php'); + +// setting up params +$courseid = optional_param('id', SITEID, PARAM_INT); // course id + +/// check capability + +$page = optional_param('page', 0, PARAM_INT); // current page +$search = optional_param('search', 0, PARAM_TEXT); +$deleteid = optional_param('deleteid', 0, PARAM_INT); // which outcome to delete +$confirm = optional_param('confirm', 0, PARAM_INT); +$perpage = 30; + + // form processing + if ($deleteid && confirm_sesskey()) { + if ($confirm) { + // delete all outcomes used in courses + // delete all outcomes used in grade items + delete_records('grade_outcomes_courses', 'outcomeid', $deleteid); + delete_records('grade_outcomes', 'id', $deleteid); + } else { + // prints confirmation + print_header(''); + echo '
'; + echo '
'; + echo ''; + echo ''; + echo ''; + echo 'Are you sure you want to delete this outcome?'; + echo ''; + echo '
'; + echo '
'; + print_footer(); + exit; + } + } + + /// display information + admin_externalpage_setup('gradereportoutcomes'); + admin_externalpage_print_header(); + + // Add tabs + $currenttab = 'outcomesettings'; + include('tabs.php'); + + $totalcount = count_records('grade_outcomes'); + $baseurl = "settings.php"; + print_paging_bar($totalcount, $page, $perpage, $baseurl); + + if ($outcomes = get_recordset('grade_outcomes', '', '', '', '*', $page * $perpage, $perpage)) { + + $tablecolumns = array('outcome', 'scale', 'course', 'edit', 'usedgradeitems', 'usedcourses'); + $tableheaders = array(get_string('outcomes'), + get_string('scale'), + get_string('course'), + get_string('operations'), + get_string('usedgradeitem'), + get_string('usedcourses')); + + $table = new flexible_table('outcomes'); + $table->define_columns($tablecolumns); + $table->define_headers($tableheaders); + $table->define_baseurl($baseurl); + $table->set_attribute('cellspacing', '0'); + $table->set_attribute('id', 'user-grade'); + $table->set_attribute('class', 'boxaligncenter generaltable'); + + $table->setup(); + + foreach ($outcomes as $outcome) { + $data = array(); + + // full name of the outcome + $data[] = $outcome['fullname']; + + // full name of the scale used by this outcomes + $scale= get_record('scale', 'id', $outcome['scaleid']); + $data[] = $scale->name; + + // get course + if ($outcome['courseid']) { + $course = get_record('course', 'id', $outcome['courseid']); + $data[] = $course->shortname; + } else { + $data[] = get_string('site'); + } + + // add operations + $data[] = 'Update + Delete'; // icons and links + + // num of gradeitems using this + $num = count_records('grade_outcomes_courses', 'outcomeid' ,$outcome['id']); + $data[] = (int) $num; + + // num of courses using this outcome + $num = count_records('grade_items', 'outcomeid', $outcome['id']); + $data[] = (int) $num; + + $table->add_data($data); + } + + $table->print_html(); + } + + echo 'Add a new outcome'; + + // print the footer, end of page + admin_externalpage_print_footer(); +?> \ No newline at end of file diff --git a/grade/report/outcomes/tabs.php b/grade/report/outcomes/tabs.php index b3edd542ef..8f88907e81 100644 --- a/grade/report/outcomes/tabs.php +++ b/grade/report/outcomes/tabs.php @@ -4,9 +4,15 @@ $CFG->wwwroot.'/grade/report/outcomes/index.php?id='.$courseid, get_string('outcomereport', 'grades')); - $row[] = new tabobject('outcomesettings', - $CFG->wwwroot.'/grade/report/outcomes/settings.php?id='.$courseid, - get_string('settings')); + if ($courseid != SITEID) { + $row[] = new tabobject('outcomesettings', + $CFG->wwwroot.'/grade/report/outcomes/course.php?id='.$courseid, + get_string('settings')); + } else { + $row[] = new tabobject('outcomesettings', + $CFG->wwwroot.'/grade/report/outcomes/site.php?id='.$courseid, + get_string('settings')); + } $row[] = new tabobject('editoutcomes', $CFG->wwwroot.'/grade/report/outcomes/editoutcomes.php?courseid='.$courseid, -- 2.39.5