/** * Given a form, * this function will permanently delete the activite instance * and any document that depends on it. * * @param object $form * @return boolean Success/Failure **/ function referentiel_delete_activity($form) { // suppression activite + document $ok_activite_detruite = false; $ok_document = false; // DEBUG // echo "<br />"; // print_object($form); // echo "<br />"; if (isset($form->action) && $form->action == "modifier_activite") { // suppression d'une activite et des documents associes if (isset($form->activite_id) && $form->activite_id > 0) { $activite = referentiel_get_activite($form->activite_id); $ok_activite_detruite = referentiel_delete_activity_record($form->activite_id); if ($ok_activite_detruite && $activite->userid > 0 && $activite->competences_activite != '') { // mise a jour du certificat referentiel_mise_a_jour_competences_certificat_user($activite->competences_activite, '', $activite->userid, $activite->ref_referentiel, $activite->approved, true, true); } } } else { if (isset($form->action) && $form->action == "modifier_document") { // suppression d'un document if (isset($form->document_id) && $form->document_id > 0) { $ok_document = referentiel_delete_document_record($form->document_id); } } } return $ok_activite_detruite or $ok_document; }
function referentiel_delete_task_and_activities($id) { // suppression task + consignes associes + liens vers activite et user + activites dues a la tache global $DB; $ok_task = false; if (!empty($id)) { if ($task = $DB->get_record("referentiel_task", array("id" => "{$id}"))) { // Delete any dependent records here if ($r_a_users_tasks = $DB->get_records("referentiel_a_user_task", array("ref_task" => "{$id}"))) { // DEBUG // echo "<br /> \n"; // print_object($r_a_users_tasks); // echo "<br />suppression des activites\n"; foreach ($r_a_users_tasks as $r_a_user_task) { // suppression de l'activite referentiel_delete_activity_record($r_a_user_task->ref_activite); } } $ok_task = referentiel_delete_task_record($id); } } return $ok_task; }
} exit; } // utilisateur if (isset($action) && $action == 'selectuser') { if (!empty($userid) && confirm_sesskey()) { $userid_filtre = $userid; } unset($form); unset($action); } /// Delete any requested records if (isset($delete) && $delete > 0 && confirm_sesskey() && (has_capability('mod/referentiel:write', $context) or referentiel_activite_isowner($delete))) { if ($confirm = optional_param('confirm', 0, PARAM_INT)) { // suppression if (referentiel_delete_activity_record($delete)) { if ($CFG->version > 2014051200) { // Moodle 2.7+ $params = array('contextid' => $context->id, 'objectid' => $delete); $event = \mod_referentiel\event\activite_deleted::create($params); $event->trigger(); } else { // Before Moodle 2.7 add_to_log($course->id, 'referentiel', 'activity deleted', "activite.php?id={$cm->id}", $delete, $cm->id); } // notify(get_string('recorddeleted','referentiel'), 'notifysuccess'); } } redirect("{$CFG->wwwroot}/mod/referentiel/activite.php?d={$referentiel->id}&select_acc={$select_acc}&mode={$mode}&f_auteur={$data_f->f_auteur}&f_validation={$data_f->f_validation}&f_referent={$data_f->f_referent}&f_date_modif={$data_f->f_date_modif}&f_date_modif_student={$data_f->f_date_modif_student}"); exit; }
} // add, delete or update form submitted $addfunction = "referentiel_add_task"; $updatefunction = "referentiel_update_task"; $deletefunction = "referentiel_delete_task"; switch ($form->mode) { case "deletetaskall": if (isset($form->name)) { if (trim($form->name) == '') { unset($form->name); } } if (isset($form) && !empty($form->taskid) && !empty($form->t_activite)) { $select_sql = ''; foreach ($form->t_activite as $activite_id) { referentiel_delete_activity_record($activite_id); } referentiel_delete_task_record($form->taskid); } break; case "approve": if (isset($form->name)) { if (trim($form->name) == '') { unset($form->name); } } if (isset($form) && !empty($form->taskid) && !empty($form->t_activite)) { $select_sql = ''; foreach ($form->t_activite as $activite_id) { if (empty($select_sql)) { $select_sql .= ' AND ((ref_activite=' . $activite_id . ') ';
/** * Deletes a referentiel instance activity * * Deletes all database records, files and calendar events for this referentiel instance. * * @global object $CFG * @global object $DB * @param object $referentiel The referentiel to be purged * @param boolean purge : if true referentiel instance is deleted too * @return boolean False indicates error */ function delete_instance($referentiel, $purge = true) { global $CFG, $DB; $result = true; // now get rid of all files $fs = get_file_storage(); if ($cm = get_coursemodule_from_instance('referentiel', $referentiel->id)) { $context = context_module::instance($cm->id); $fs->delete_area_files($context->id); } // suppression des activites associees $activites = referentiel_get_activites_instance($referentiel->id); if ($activites) { foreach ($activites as $activite) { referentiel_delete_activity_record($activite->id); } } // suppression des taches associees $taches = referentiel_get_tasks_instance($referentiel->id); if ($taches) { foreach ($taches as $tache) { referentiel_delete_task_record($tache->id); } } // suppression des accompagnements $accompagnements = referentiel_get_accompagnements($referentiel->id); if ($accompagnements) { foreach ($accompagnements as $accompagnement) { referentiel_delete_accompagnement_record($accompagnement->id); } } // recalcul des certificats associes $certificats = referentiel_get_certificats($referentiel->ref_referentiel); if ($certificats) { foreach ($certificats as $certificat) { referentiel_recalcule_certificat($certificat); } } // suppression des evenements du calendrier if (!$DB->delete_records('event', array('modulename' => 'referentiel', 'instance' => $referentiel->id))) { $result = false; } if ($purge) { // on supprime aussi l'instance if (!$DB->delete_records('referentiel', array('id' => $referentiel->id))) { $result = false; } } else { // l'instance est conservee après avoir ete videe ; utile pour la reinitialisation du cours $result = true; } // $mod = $DB->get_field('modules','id',array('name'=>'referentiel')); // referentiel_grade_item_delete($referentiel); // existe pas return $result; }