/**
 * 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;
}
Beispiel #3
0
    }
    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}&amp;select_acc={$select_acc}&amp;mode={$mode}&amp;f_auteur={$data_f->f_auteur}&amp;f_validation={$data_f->f_validation}&amp;f_referent={$data_f->f_referent}&amp;f_date_modif={$data_f->f_date_modif}&amp;f_date_modif_student={$data_f->f_date_modif_student}");
    exit;
}
Beispiel #4
0
 }
 // 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;
 }