public function valuation($task_set_id, $solution_id) { $this->_add_mathjax(); $solution = new Solution(); $solution->select('`solutions`.*'); $solution->select_subquery('(SELECT SUM(`points_total`) AS `points` FROM `task_task_set_rel` WHERE `task_set_id` = `task_sets`.`id` AND `task_task_set_rel`.`bonus_task` = 0)', 'task_set_total_points'); $solution->include_related('task_set', '*', TRUE, TRUE); $solution->include_related('task_set/course', 'name'); $solution->include_related('task_set/course/period', 'name'); $solution->include_related('task_set/group', 'name'); $solution->include_related('student', array('fullname', 'email')); $solution->include_related('teacher', array('fullname', 'email')); $solution->where('student_id IS NOT NULL'); $solution->where('task_set_id', $task_set_id); $solution->get_by_id($solution_id); $group = new Group(); $group->where_related('participant', 'student_id', $solution->student_id); $group->where_related('participant/course/task_set', 'id', $task_set_id); $group->get(); $project_selection = new Project_selection(); $project_selection->select('`project_selections`.*, `task_task_task_set_rel`.`internal_comment` AS `task_join_internal_comment`'); $project_selection->include_related('task', '*', TRUE, TRUE); $project_selection->include_related('task/task_set', array('id', 'name')); $project_selection->where('task_set_id', $solution->task_set_id); $project_selection->where('student_id', $solution->student_id); $project_selection->where('task_task_sets.id', $solution->task_set_id); $project_selection->get(); $this->load->helper('tests'); $test_types_subtypes = get_all_supported_test_types_and_subtypes(); $this->parser->add_js_file('jquery.activeform.js'); $this->parser->add_js_file('admin_solutions/valuation.js'); $this->parser->add_css_file('admin_solutions.css', array('media' => '')); $this->_add_prettify(); $this->parser->parse('backend/solutions/valuation.tpl', array('solution' => $solution, 'group' => $group, 'test_types' => $test_types_subtypes['types'], 'test_subtypes' => $test_types_subtypes['subtypes'], 'project_selection' => $project_selection, 'add_url' => $this->uri->assoc_to_uri($this->uri->ruri_to_assoc(5)))); }
public function edit() { $this->_select_teacher_menu_pagetag('task_sets'); $url = $this->uri->ruri_to_assoc(3); $task_set_id = isset($url['task_set_id']) ? intval($url['task_set_id']) : intval($this->input->post('task_set_id')); $task_set = new Task_set(); $task_set->get_by_id($task_set_id); $ps_data = array(); $nps_data = array(); if ($task_set->exists() && $task_set->content_type == 'project') { $project_selections = new Project_selection(); $project_selections->select('*'); $project_selections->include_related('student', array('fullname', 'email')); $project_selections->where_related($task_set); $project_selections->include_related('task', 'name'); $project_selections->include_related('task/task_set', 'id'); $project_selections->where_related('task/task_set', 'id', $task_set->id); $project_selections->order_by('task_task_task_set_rel.sorting', 'ASC'); $project_selections->order_by_related_as_fullname('student', 'fullname', 'asc'); $project_selections->get(); if ($project_selections->exists()) { foreach ($project_selections->all as $project_selection) { $ps_data[$project_selection->task_id][] = $project_selection; } } $project_selections->select_func('COUNT', '@id', 'count'); $project_selections->where('task_set_id', 'participant_course_task_sets.id', false); $project_selections->where_related('student', 'id', '${parent}.id'); $students = new Student(); $students->where_related('participant/course/task_set', $task_set); $students->where_related('participant', 'allowed', 1); $students->where_subquery(0, $project_selections); $students->order_by_as_fullname('fullname', 'asc'); $students->get(); if ($students->exists()) { $nps_data = $students->all; } } $this->_add_tinymce4(); $this->parser->add_js_file('jquery.activeform.js'); $this->parser->add_js_file('admin_task_sets/edit.js'); $this->parser->add_js_file('admin_task_sets/form.js'); $this->parser->add_css_file('admin_task_sets.css'); $this->inject_courses(); $this->inject_languages(); $this->inject_test_types(); $this->inject_course_groups(); $this->inject_course_group_rooms(); $this->inject_course_task_set_types(); $this->parser->parse('backend/task_sets/edit.tpl', array('task_set' => $task_set, 'project_selections' => $ps_data, 'not_project_selections' => $nps_data)); }