function can_do_default()
 {
     $id = $this->required_param('id', PARAM_INT);
     return coursepage::_has_capability('block/curr_admin:course:edit', $id);
 }
예제 #2
0
 /**
  * Display form to manage corequisites.
  */
 public function display_coreqedit()
 {
     $id = $this->required_param('id', PARAM_INT);
     $curcrsid = $this->required_param('association_id', PARAM_INT);
     $curcrs = new curriculumcourse($curcrsid);
     $curcrs->seturl(null, array('s' => $this->pagename, 'action' => 'coreqedit', 'id' => $id));
     $coreqform = $curcrs->create_corequisite_form();
     if ($coreqform->is_cancelled()) {
         $this->display_default();
         return;
     } else {
         if ($coreqform->is_submitted() && $coreqform->is_validated()) {
             $formdata = $coreqform->get_data();
             $output = '';
             $added = 0;
             $deleted = 0;
             // Process requested corequisite deletions.
             $scoreqs = isset($formdata->scoreqs) ? $formdata->scoreqs : array();
             foreach ($scoreqs as $scoreq) {
                 if ($curcrs->del_corequisite($scoreq)) {
                     $deleted++;
                 }
             }
             // Process requested corequisite additions.
             $coreqs = isset($formdata->coreqs) ? $formdata->coreqs : array();
             // TODO: Ugly, this needs to be overhauled.
             $cpage = new coursepage();
             foreach ($coreqs as $coreq) {
                 if ($cpage->_has_capability('local/elisprogram:course_view', $coreq) && $curcrs->add_corequisite($coreq, !empty($formdata->add_to_curriculum))) {
                     $added++;
                 }
             }
             if ($deleted > 0) {
                 $delstring = $deleted > 1 ? 'deleted_corequisites' : 'deleted_corequisite';
                 $output .= get_string($delstring, 'local_elisprogram', $deleted);
             }
             if ($added > 0) {
                 $addstring = $added > 1 ? 'added_corequisites' : 'added_corequisite';
                 $output .= ($deleted > 0 ? ' / ' : '') . get_string($addstring, 'local_elisprogram', $added);
             }
             if ($deleted > 0 || $added > 0) {
                 $output .= "\n";
             }
             $curriculum = $curcrs->curriculum;
             if ($curriculum->iscustom) {
                 $curassid = $this->_db->get_field(curriculumstudent::TABLE, 'id', array('curriculumid' => $curriculum->id));
                 $stucur = new curriculumstudent($curassid);
                 redirect('index.php?s=stucur&section=curr&id=' . $stucur->id . '&action=edit', $output, 3);
             }
             echo $output;
             // Recreate the form, to reflect changes in the lists.
             $coreqform = $curcrs->create_corequisite_form();
         }
     }
     $coreqform->display();
 }
 function action_default()
 {
     $id = $this->required_param('id', PARAM_INT);
     $sort = optional_param('sort', 'name', PARAM_ALPHA);
     $dir = optional_param('dir', 'ASC', PARAM_ALPHA);
     $page = optional_param('page', 0, PARAM_INT);
     $perpage = optional_param('perpage', 30, PARAM_INT);
     // how many per page
     $namesearch = trim(cm_get_param('search', ''));
     $alpha = cm_get_param('alpha', '');
     $columns = array('curriculumname' => get_string('curriculum_name', 'block_curr_admin'), 'required' => get_string('required', 'block_curr_admin'), 'frequency' => get_string('frequency', 'block_curr_admin'), 'timeperiod' => get_string('time_period', 'block_curr_admin'), 'position' => get_string('position', 'block_curr_admin'), 'buttons' => get_string('management', 'block_curr_admin'));
     // ELIS-3306: back porting ELIS-2442
     //$contexts = curriculumpage::get_contexts('block/curr_admin:associate');
     $items = curriculumcourse_get_curriculum_listing($id, $sort, $dir, 0, 0, $namesearch, $alpha);
     $numitems = curriculumcourse_count_curriculum_records($id, $namesearch, $alpha);
     $formatters = $this->create_link_formatters(array('curriculumname'), 'curriculumpage', 'curriculumid');
     $this->print_num_items($numitems);
     $this->print_alpha();
     $this->print_search();
     $this->print_list_view($items, $columns, $formatters, 'curricula');
     if (coursepage::_has_capability('block/curr_admin:associate')) {
         $this->print_add_button(array('id' => $id), get_string('course_assigncurriculum', 'block_curr_admin'));
     }
     if (coursepage::_has_capability('block/curr_admin:curriculum:create')) {
         echo '<div align="center">';
         $options = array_merge(array('s' => 'cfc', 'id' => $id));
         echo print_single_button('index.php', $options, get_string('makecurcourse', 'block_curr_admin'), 'get', '_self', true, get_string('makecurcourse', 'block_curr_admin'));
         echo '</div>';
     }
 }
예제 #4
0
 function can_do_default()
 {
     if (($id = $this->optional_param('id', 0, PARAM_INT)) > 0) {
         $crspg = new coursepage(array('id' => $id));
         if ($crspg->_has_capability('local/elisprogram:class_create', $id)) {
             return true;
         }
         $parentclusterid = $this->optional_param('parent_clusterid', 0, PARAM_INT);
         $contexts = pmclasspage::get_contexts('local/elisprogram:class_view');
         return pmclass_count_records('', '', $id, false, $contexts, $parentclusterid) > 0;
     }
     $contexts = pmclasspage::get_contexts('local/elisprogram:class_view');
     return !$contexts->is_empty();
 }