From 09dfb5deeb0b9a6a66cf0fa56009cee80f5cf544 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:18:15 +0200 Subject: [PATCH 001/172] added \Plafor\Admin controller --- orif/plafor/Controllers/Admin.php | 103 ++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 orif/plafor/Controllers/Admin.php diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php new file mode 100644 index 00000000..8969eb5c --- /dev/null +++ b/orif/plafor/Controllers/Admin.php @@ -0,0 +1,103 @@ +validation = \Config\Services::validation(); + } + + /** + * Displays the list of course plans + * + * @return void + */ + public function list_course_plan($id_apprentice = null) + { + $coursePlanModel=new CoursePlanModel(); + $userCourseModel=new UserCourseModel(); + if($id_apprentice == null){ + $course_plans = $coursePlanModel->findAll(); + }else{ + $userCourses = $userCourseModel->getWhere(['fk_user'=>$id_apprentice])->getResult(); + + $coursesId = array(); + + foreach ($userCourses as $userCourse){ + $coursesId[] = $userCourse->fk_course_plan; + } + + //$course_plans = $this->course_plan_model->get_many($coursesId); + $course_plans=$coursePlanModel->whereIn('id',count($coursesId)==0?[null]:$coursesId)->findAll(); + } + + $output = array( + 'course_plans' => $course_plans + ); + + if(is_numeric($id_apprentice)){ + $output[] = ['course_plans' => $course_plans]; + } + + $this->display_view('Plafor\course_plan\list', $output); + } + /** + * Adds or modify a course plan + * + * @param integer $course_plan_id = The id of the course plan to modify, leave blank to create a new one + * @return void + */ + public function save_course_plan($course_plan_id = 0) + { + $coursePlanModel=new CoursePlanModel(); + + if (count($_POST) > 0) { + $course_plan_id = $this->request->getPost('id'); + $rules = array( + 'formation_number'=>[ + 'label' => 'user_lang.field_course_plan_formation_number', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric|checkFormPlanNumber', + ], + 'official_name'=>[ + 'label' => 'user_lang.field_course_plan_official_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH.']', + ],'date_begin'=>[ + 'label' => 'user_lang.field_course_plan_official_name', + 'rules' => 'required|required', + ] + ); + $this->validation->setRules($rules); + if ($this->validation->withRequest($this->request)->run()) { + $course_plan = array( + 'formation_number' => $this->request->getPost('formation_number'), + 'official_name' => $this->request->getPost('official_name'), + 'date_begin' => $this->request->getPost('date_begin') + ); + if ($course_plan_id > 0) { + $coursePlanModel->update($course_plan_id, $course_plan); + } else { + $coursePlanModel->insert($course_plan); + } + return redirect()->to(base_url('/plafor/admin/list_course_plan')); + } + } + + $output = array( + 'title' => lang('user_lang.title_course_plan_'.((bool)$course_plan_id ? 'update' : 'new')), + 'course_plan' => $coursePlanModel->find($course_plan_id) + ); + + $this->display_view('\Plafor\course_plan\save', $output); + } + + +} \ No newline at end of file From 44baefc9428f5c84a9d0a1b253b56208b3af6ae9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:18:46 +0200 Subject: [PATCH 002/172] updated baseurl --- app/Config/App.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Config/App.php b/app/Config/App.php index 81a169b8..750bd29e 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -23,7 +23,7 @@ class App extends BaseConfig * * @var string */ - public $baseURL = 'http://localhost/ci_packbase_v4/public/'; + public $baseURL = 'http://localhost/plafor/public/'; /** * -------------------------------------------------------------------------- From d427244b9ff09a5b0c0f69ae39faf082cbdb4dac Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:19:13 +0200 Subject: [PATCH 003/172] added missing trad --- orif/common/Language/fr/common_lang.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 1d105b7e..40513b16 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -25,6 +25,9 @@ 'btn_add' => 'Ajouter', 'btn_new_m' => 'Nouveau', 'btn_new_f' => 'Nouvelle', + 'btn_add_m' => 'Nouveau', + 'btn_details' => 'Détails', + 'btn_update' => 'Modifier', // Other common texts 'yes' => 'Oui', From 8a23c5b16a9a1827b5346594e8cb0e6d19124e99 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:19:37 +0200 Subject: [PATCH 004/172] added list view in Plafor --- orif/plafor/Views/course_plan/list.php | 76 ++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 orif/plafor/Views/course_plan/list.php diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php new file mode 100644 index 00000000..03f6c6a2 --- /dev/null +++ b/orif/plafor/Views/course_plan/list.php @@ -0,0 +1,76 @@ + +
+
+ +
+
+
+

+
+
+
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
×
+
+
+ + \ No newline at end of file From 5b3da127b790e23c4ee4b2afd0e5a7f9bf810865 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:20:21 +0200 Subject: [PATCH 005/172] added \Plafor\Config\PlaforConfig --- orif/plafor/Config/PlaforConfig.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 orif/plafor/Config/PlaforConfig.php diff --git a/orif/plafor/Config/PlaforConfig.php b/orif/plafor/Config/PlaforConfig.php new file mode 100644 index 00000000..85ca238d --- /dev/null +++ b/orif/plafor/Config/PlaforConfig.php @@ -0,0 +1,23 @@ + Date: Thu, 6 May 2021 11:21:09 +0200 Subject: [PATCH 006/172] added CustomRules to verify plan's formation number --- orif/plafor/Validation/PlaforRules.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 orif/plafor/Validation/PlaforRules.php diff --git a/orif/plafor/Validation/PlaforRules.php b/orif/plafor/Validation/PlaforRules.php new file mode 100644 index 00000000..a67f7319 --- /dev/null +++ b/orif/plafor/Validation/PlaforRules.php @@ -0,0 +1,20 @@ +getWhere(['formation_number'=>$number])->getResultArray())>0){ + $error= lang('user_lang.form_number_not_unique'); + return false; + } + + return true; + } + +} \ No newline at end of file From 8127a4da5c0a195a166db66824bda0eac05b18ae Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:21:41 +0200 Subject: [PATCH 007/172] added Route for plafor's requests handling --- orif/plafor/Config/Routes.php | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 orif/plafor/Config/Routes.php diff --git a/orif/plafor/Config/Routes.php b/orif/plafor/Config/Routes.php new file mode 100644 index 00000000..4cd46fe0 --- /dev/null +++ b/orif/plafor/Config/Routes.php @@ -0,0 +1,11 @@ +add('plafor/admin/(:any)','\Plafor\Controllers\Admin::$1'); +?> \ No newline at end of file From 5ace4b1b6da17c98ccd19064ad176dc6bf89588f Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:22:23 +0200 Subject: [PATCH 008/172] added view \Plafor\Views\course_plan --- orif/plafor/Views/course_plan/save.php | 96 ++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 orif/plafor/Views/course_plan/save.php diff --git a/orif/plafor/Views/course_plan/save.php b/orif/plafor/Views/course_plan/save.php new file mode 100644 index 00000000..a9a46746 --- /dev/null +++ b/orif/plafor/Views/course_plan/save.php @@ -0,0 +1,96 @@ + + 'formation_number', + 'value' => $course_plan_formation_number ?? $course_plan->formation_number ?? '', + 'type' => 'number', + 'max' => str_repeat('9',config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH), + 'class' => 'form-control', + 'id' => 'course_plan_formation_number' +); + +$data_official_name = array( + 'name' => 'official_name', + 'value' => $course_plan_official_name ?? $course_plan->official_name ?? '', + 'maxlength' => config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'course_plan_official_name' +); + +$data_date_begin = array( + 'name' => 'date_begin', + 'value' => $course_plan_date_begin ?? $course_plan->date_begin ?? '', + 'type' => 'date', + 'class' => 'form-control', 'id' => 'course_plan_date_begin' +); +?> +
+ +
+
+

+
+
+ + + 'course_plan_form', + 'name' => 'course_plan_form' + ); + echo form_open('plafor/admin/save_course_plan', $attributes, [ + 'id' => $course_plan->id ?? 0 + ]); + ?> + + + getErrors())) : ?> + + + + +
+
+ 'form-label']); ?> + + 'form-label']); ?> + + 'form-label']); ?> + +
+
+ + +
+
+ + 'btn btn-primary']); ?> +
+
+ +
+ \ No newline at end of file From c3f329afb7035b3046885ae388a5dac62bd63b31 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:28:39 +0200 Subject: [PATCH 009/172] added text trad to user_lang --- orif/user/Language/fr/user_lang.php | 161 ++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index ff036115..ad10e910 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -67,5 +67,166 @@ 'user_update_usertype_himself' => 'Vous ne pouvez pas modifier votre propre type d\'utilisateur. Cette opération doit être faite par un autre administrateur.', 'user_delete_himself' => 'Vous ne pouvez pas désactiver ou supprimer votre propre compte. Cette opération doit être faite par un autre administrateur.', 'page_my_password_change' => 'Modification de mon mot de passe', +'title_administrator' => 'Administrateur', +'title_trainer' => 'Formateur', +'title_apprentice' => 'Apprenti', +// User Course Status +'title_in_progress' => 'En cours', +'title_successful' => 'Réussi', +'title_failed' => 'Échouée', +'title_suspended' => 'Suspendue', +'title_abandoned' => 'Abandonnée', + +// Page titles +'title_apprentice_list' => 'Liste des apprentis', +'title_apprentice_update' => 'Modifier l\'apprenti', +'title_apprentice_new' => 'Ajouter un apprenti', +'title_apprentice_delete' => 'Supprimer un apprenti', +'title_trainer_list' => 'Liste des formateurs', +'title_trainer_update' => 'Modifier le formateur', +'title_trainer_new' => 'Ajouter un formateur', +'title_trainer_delete' => 'Supprimer un formateur', +'title_course_plan_list' => 'Liste des plans de formation', +'title_course_plan_update' => 'Modifier le plan de formation', +'title_course_plan_new' => 'Ajouter un plan de formation', +'title_course_plan_delete' => 'Supprimer le plan de formation', +'title_competence_domain_list' => 'Liste des domaines de compétence', +'title_competence_domain_update' => 'Modifier le domaine de compétence', +'title_competence_domain_new' => 'Ajouter un domaine de compétence', +'title_competence_domain_delete' => 'Supprimer le domaine de compétence', +'title_operational_competence_list'=> 'Liste des compétences opérationnelles', +'title_operational_competence_update' => 'Modifier la compétence opérationnelle', +'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', +'title_operational_competence_delete' => 'Supprimer la compétence opérationnelle', +'title_objective_list' => 'Liste des objectifs', +'title_objective_update' => 'Modifier l\'objectif', +'title_objective_new' => 'Ajouter un objectif', +'title_objective_delete' => 'Supprimer l\'objectif', +'title_user_course_list' => 'Liste des formations liées', +'title_user_course_update' => 'Modifer la formation liée', +'title_user_course_new' => 'Ajouter une formation liée', +'title_user_course_delete' => 'Supprimer la formation liée', +'title_apprentice_link_list' => 'Liste des formateurs liés', +'title_apprentice_link_update' => 'Modifer le formateur lié', +'title_apprentice_link_new' =>'Ajouter un formateur lié', +'title_apprentice_link_delete' =>'Supprimer le formateur lié', +'title_acquisition_status_list' =>'Liste des statuts d\'acquisition', +'title_acquisition_status_update'=>'Modifer le statut d\'acquisition', +'title_acquisition_status_new' =>'Ajouter un statut d\'acquisition', +'title_acquisition_status_delete'=>'Supprimer le statut d\'acquisition', +'title_comment_list' =>'Liste des commentaires', +'title_comment_update' =>'Modifer le commentaire', +'title_comment_new' =>'Ajouter un commentaire', +'title_comment_delete' =>'Supprimer le commentaire', + +// Details labels +'details_apprentice' =>'Détail de l\'apprenti', +'details_course_plan' =>'Détail du plan de formation', +'details_competence_domain' =>'Détail du domaine de compétence', +'details_operational_competence' =>'Détail de la compétence opérationnelle', +'details_objective' =>'Détail de l\'objectif', +'details_user_course' =>'Détail de la formation de l\'apprenti', +'details_acquisition_status' =>'Détail du statut d\'acquisition', + +// Fields labels +'field_apprentice_username' =>'Nom de l\'apprenti', +'field_apprentice_date_creation' =>'Date de création de l\'apprenti', +'field_followed_courses' =>'Formation(s) suivie(s)', +'field_linked_competence_domains'=>'Domaines de compétences liés', +'field_linked_operational_competence' =>'Compétences opérationnelles liés', +'field_course_plan_formation_number' =>'Numéro du plan de formation', +'field_course_plans_formation_numbers'=>'Numéros des plans de formations', +'field_course_plan_official_name' =>'Nom du plan de formation', +'field_course_plans_official_names' =>'Noms des plans de formation', +'field_course_plan_date_begin' =>'Date de création du plan de formation', +'field_course_plans_dates_begin' =>'Dates de création des plans de formation', +'field_competence_domain_course_plan' =>'Plan de formation lié au domaine de compétence', +'field_competence_domain_symbol' =>'Symbole du domaine de compétence', +'field_competence_domains_symbols' =>'Symbole des domaines de compétences', +'field_competence_domain_name' =>'Nom du domaine de compétence', +'field_competence_domains_names' =>'Noms des domaines de compétences', +'field_operational_competence_domain' =>'Domaine de compétence lié à la compétence opérationnelle', +'field_operational_competence_name' =>'Nom de la compétence opérationnelle', +'field_operational_competences_names' =>'Noms des compétences opérationnelles', +'field_operational_competence_symbol' =>'Symbole de la compétence opérationnelle', +'field_operational_competences_symbols' =>'Symboles des compétences opérationnelles', +'field_operational_competence_methodologic' =>'Compétence méthodologique', +'field_operational_competence_social' =>'Compétence sociale', +'field_operational_competence_personal' =>'Compétence personnelle', +'field_objective_operational_competence' =>'Compétence opérationnelle liée à l\'objectif', +'field_objective_symbol' =>'Symboles de l\' objectif', +'field_objectives_symbols' =>'Symbole des objectif', +'field_objective_taxonomy' =>'Taxonomie de l\'objectif', +'field_objectives_taxonomies' =>'Taxonomie des objectifs', +'field_objective_name' =>'Nom de l\'objectif', +'field_objectives_names' =>'Nom des objectifs', +'field_user_course_date_begin' =>'Date du début de la formation', +'field_user_course_date_end' =>'Date de fin de la formation', +'field_user_course_course_plan' =>'Formation', +'field_user_course_status' =>'Statut de la formation', +'field_user_course_objectives_status' =>'Statuts d\'acquisition des objectifs', +'field_comment' =>'Commentaire', +'field_comment_creater' =>'Créateur du commentaire', +'field_comment_date_creation' =>'Date de création du commentaire', +'field_trainer_link' =>'Formateur(s) lié(s)', +'field_trainers_name' =>'Nom des formateurs', +'field_acquisition_level' =>'Niveau d\'acquisition', +'field_id' =>'Identifiant', +'field_symbol' =>'Symbole', +'field_taxonomy' =>'Taxonomie', +'field_linked_comments' =>'Commentaires liés', + +// Admin texts +'admin_apprentices' =>'Apprentis', +'admin_course_plans' =>'Plans de formations', +'admin_competence_domains' =>'Domaines de compétences', +'admin_objectives' =>'Objectifs', +'admin_operational_competences' =>'Compétences opérationnelles', + +// Error messages +'msg_err_course_plan_not_exist' =>'Le plan de formation sélectionné n\'existe pas', +'msg_err_course_plan_not_unique' =>'Ce plan de formation est déjà utilisé, merci d\'en choisir un autre', + +// Other texts +'course_plan' =>'Plan de formation', +'course_plan_delete' =>'Supprimer ce plan de formation', +'course_plan_delete_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront supprimées.', +'course_plan_disable' =>'Désactiver ce plan de formation', +'course_plan_disable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront désactivées.', +'competence_domain' =>'Domaine de compétence', +'competence_domain_delete' =>'Supprimer ce domaine de compétence', +'competence_domain_delete_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront supprimées.', +'competence_domain_disable' =>'Désactiver ce domaine de compétence', +'competence_domain_disable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront désactivées.', +'operational_competence' =>'Compétence opérationnelle', +'operational_competence_delete' =>'Supprimer cette compétence opérationnelle', +'operational_competence_delete_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront supprimées.', +'operational_competence_disable' =>'Désactiver cette compétence opérationnelle', +'operational_competence_disable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront désactivées.', +'objective' =>'Objectif', +'objective_delete' =>'Supprimer cet objectif', +'objective_delete_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront supprimées.', +'objective_disable' =>'Désactiver cet objectif', +'objective_disable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront désactivées.', +'user_course' =>'Formation liée', +'user_course_delete' =>'Supprimer cette formation liée', +'user_course_delete_explanation' =>'Toutes les informations concernant cette formation liée seront supprimées.', +'user_course_disable' =>'Désactiver cette formation liée', +'user_course_disable_explanation' =>'Toutes les informations concernant cette formation liée seront désactivées.', +'apprentice_link' =>'Apprenti et formateur lié', +'apprentice_link_delete' =>'Supprimer le lien entre cette apprenti et ce formateur', +'apprentice_link_delete_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront supprimées.', +'apprentice_link_disable' =>'Désactiver le lien entre cette apprenti et ce formateur', +'apprentice_link_disable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront désactivées.', +'acquisition_status' =>'Statut d\'acquisition', +'acquisition_status_delete' =>'Supprimer le statut d\'acquisition', +'acquisition_status_delete_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront supprimées.', +'acquisition_status_disable' =>'Désactiver le statut d\'acquisition', +'acquisition_status_disable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront désactivées.', +'apprentice' =>'Apprenti', +'trainer' =>'Formateur', +'course_status' =>'Status des formations', +'status' =>'Statut de la formation', +'form_number_not_unique' =>'Le numéro du plan de formation existe déjà' ]; \ No newline at end of file From a7f51571b76fcc134cadeac799672c32a8fbc0d0 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 6 May 2021 11:29:10 +0200 Subject: [PATCH 010/172] added rule to test number is not used --- app/Config/Validation.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Config/Validation.php b/app/Config/Validation.php index e83ad19b..ba4d361d 100644 --- a/app/Config/Validation.php +++ b/app/Config/Validation.php @@ -25,7 +25,8 @@ class Validation FormatRules::class, FileRules::class, CreditCardRules::class, - \User\Validation\CustomRules::class + \User\Validation\CustomRules::class, + \Plafor\Validation\PlaforRules::class, ]; /** From bea22f526fcd92daccf4b68f9348a4409a46452d Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 6 May 2021 15:38:09 +0200 Subject: [PATCH 011/172] Add draw.io database schema --- documentation/db_plafor.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 documentation/db_plafor.drawio diff --git a/documentation/db_plafor.drawio b/documentation/db_plafor.drawio new file mode 100644 index 00000000..99c057c5 --- /dev/null +++ b/documentation/db_plafor.drawio @@ -0,0 +1 @@ +7V1dk5s6Ev018zgpA+brMZlMkq1NdnMnuZXavEwxRrZJMHIAz8f99SswYFuSbTEY1AhSqWSMsczoNAd1n1b3lXGzev4Ye+vlF+yj8Eqf+M9XxvsrXddtfUL+y468bI9oru1sjyziwC+O7Q58C/5BxcHig4tN4KPk4MQU4zAN1ocHZziK0Cw9OObFMX46PG2Ow8NvXXsLxBz4NvNC9uiPwE+XxVHNcndvfELBYll8taPb2zdWXnly8ZskS8/HT3uHjNsr4ybGON3+tHq+QWE2e+W8bD/34ci71YXFKEpFPmBi56sZvb/WF/jHT/fuzxQt/WtrO8qjF26KX7i42PSlnIEYbyIfZYNMrox3T8sgRd/W3ix794mATo4t01VIXmnkx3kQhjc4xHH+WQNpvolscjxJY/wb7b3jWrbhWeQdTMYK0sw8zGz84npQnKLno7+oVk0fMTyEVyiNX8gpxQeud+g88SBb7sE1nRboeIWdLKrhdlNJfihms8bMmu3OLJlXx5/yZtbRHwyr9Zkt7ufr6WTCTLXJnenJBWb6+11yHX54+3fi/jI/4p/P7/6nr6+1EsO9ud4kKL6f4U2cIGbayY24zn5MvYfsEJlBL04L5jGymSJcknpBhOJi6mc4DL11EuSnb48sg9D/7L3gTVoOVL4iQD0j/25LPNm5hIM+k8GSAuY5GfxbcTHZ214YLCLy84xgkH3juxgl5Fo+e0lanHEEJQ6Wx4FzyjkqcTMsFjfN0ljcdLM93DQGt6NgkV8/DbzwjnC8Fy1y3A5hyebWj/H6uxcvUFocWOMgm9XbRzJ1FQB7N1KEo2ykFK+LN0M0Lz/7gNMUr0oQiwmpBs0nw3xH/pLpuZm8Ma9Mcrk35LW2e03+ZqfH6Q2OyH1KbCobAxFon1AGLwfaMxZ+HvECYEMQXqM9dHUG3a//rodv/kj3dvjWhm5CQUfffJhM6DzMn8rLwPdRVAcT8btwD4RyvjvCwGAwIB+Qi0FJeNtz3yXZUypafN5+0qJAMrsD6fn4jWN0euOYLGgQaZHGtRe0KPrUaxHdKYPuB0i0OGl4x1XWC5gWTXZxPv99n60Z+8SNHSIFhxvdkRvb4kZXOjdarCOnFje6wphI40aLdcoINxIfOd0kg2JHcazgsKNAOG9kx9exo6ZLp0fTVpweLWFQ5C0dHR49nok0qkiP4liBoccp63qN9HgpejSl0+NUQHLp9o5EflCO1zjaOBVGRF60kV1++F6K7h/QIoigk2NH4MAhQ3YxMZLhpcjQkU+G7DpFITK0hRGRR4ZspConQxT5SlOhODRgqNBkw04jFV6ICqtELoluc9M0A8hUaIojIs9n1hkAvHi2DB7Be8wdISOBCbk5awLCc5OctbkzQ7PZFSdn7cExp3mSWgs5a1aZePZCH9ib5+rY/jxbl0hZ4040e0NcdKJ9Dzlz7kRbMwc9zNuZaDY5sEqGPZscWJ7YZKav//rrX99//ecGRYb788Ptx9WXL59ETBr5C1SGxcjvSmblDoVeGuDodvfONni2TRLU9MPZJ0u6t1mqMXl5e/cPivF3/MWLXrbvfAjC8rw80XB35sqL/P/mrJW/UZw44VJMgUaCN/EMnWCdMrs6LVcfR+lJK5z17LcXfWxovLukOhjns/aIDq6YB2jxHV+z9cue/TiW9sax3N2fQ2MybeeNeTjodjqKcXaGwhnapAazaQ7dThgzVG5z1WS83gwFIo8DNUN3QGbo0mY4pZNrL2eG/OlmF2KzP5sgCTIzuw/RY7Z948iSbEjp0jqdLl0dOHBjOGbotrWKFlgyAPBRAeRKC4N9KlO6S/+IXaKolCetC+Mhyz9ln82DypEWB+iUm9olYE11vsGE6+pSITc7uktkm+YvAY7UmcJgyOJBVhCMvJXKITpxSKAwn9a5H0l5h0cczH3P8eQa/KznWHpIZz3H4heH4zdOaedOp/cWC/uJ+pQaytI69hPZR+wMr1ao+LbRPaTcQ5ObHMqzNqc1auhH7i8AB1Gc9qF4iBr7aFbJRdR6kPfLptMMykmsARGUtZI+bhVrixCl+4nlwIruhKhMFy4hGqyUMP99n1vhoHbR1oAKCjEa/ZAS+kiM3C20nWLLigkqEWNluoCJkQ3REGLcl1kHt5e2BmpQOFIfNYa2OJK/kbZTcBWWGXT4OoPORjPOBReBcGI3uEDhQGPkwNY4kLtbtlNwFeZAAz4HGiwH5rvDZjHKpTqFmbAGOmCYUCCU2GL67tGEXXbGL56gW8Y34Oispk2Lo7SmJqyzTumhbHqolnVWTuXiGp7ikCTXSmGt1HXuHmue4Vlt0cJYv1iQ8i9UvrjTpFA2SKqS5NqD4sVDr118odLFnSbmjpJrW4QoXXJVvDZnD0pz8itzim/gAkiR3YEGhiL7kabXR4qULr4qXp+zB+U5+dU5RZoBKUiO/UvZGztftEaO8lVXxRtf9KDvBb/tBX74RWa1B8WY5IAFhRstuZVsWtAgygDHWQ2izB+Co0FMHbqQh+W+uirIlC6bZNrMYC3rEBbLzfmiKX1Zj/0Tr/LaVuWHKpBEW0lp7VFCPxI05OsPlnh9ZijtEy02TqCS/mDBT9GwWG9+UPpDDYigVPK1mha9Hor/WJ8QpTdOLBdJKiasVXYLlw1tVv5RvDpIDVCg8J/dj4SUPvKf9OaItq4u/9niDpk0/mPDL95shpKkH6JrN+CA4UF26X6yue+QIhkOXbvGFlUGdP0EXsUX7uy8+gJO5VQR3cELySREXoreZYXQE8YmLhD1svvhLsiPn9jiTV2g5G/arLugUvzEhu8xOKzHMKj4SQ2IoGhM7tggsy1ClJ6/6bJigUryuyvu0ckiRJcN6ZfJSSd1NoDU2B1YUKjRGUMrbVGj9LxNR+HQigM/tOKwoZWMFBUPL9cABgwHjsvDtjhQfnqmo3D3dAf+4tBhF4drL0mecAzeZ+4GGDAkOPZNb40EpVfFcRTumu7Ab5rusEHboVTFqYEOFCZ0RyZsjQlFi5u0B67CTOjCZ0KXZUL1W6bXwAUKB2oTgbhgv7bllHm/Z7fllFFcONtyTGZbjk0BL7wphxnKpodquwXThA2LFeX17731OsM1mI2bc662m3OonBZnIvj8bG9zjjbpR7RMfnbJztL7k16iTdhwmUr5JTvrhbtG0iZszGxQGSZ1QAKzYOpJnzr5XuMraFF6konG6VSnUpaJ1odWdZxedYNszVQHLDj0OJZQbI0epSeaVH6KsvQIv4piVciBKqN43qVWkSH7V0BR0/npQkWBt7Fm+l5cZOJQcRF+0XRe0ZJJe/iNcRHBu1O/TFyky513GqdxmlJxEb0HcRFOf7NhxUVqgARly6rG6YoGkRYBLPzr06L04iWarrCcvjNdyJzI+tWKJ5jXgQUMC1r6+fukX3J69TA6q6drZTl7OIK6U+ahvFAD19bT7XKkruRzTr3U85Vuh+Qd6gaFLWcLgs6zrpN1IBre/qNvKEju1iV8Qy68LZK74r5hjapS0tZBnLqiw/INa4B0YlVkdwqaPWrmrdEixzfsmBY51aqUEoXsHmjmnFJQWWuENYpzx8IL72d4tUYpioYlENXADgxbcgo3j2x5IbbkSOhdLyJVjqRZPYikcQoxJy+rB6xyDcw6wIDhQU7J5pEHL8SDwsGSFuFtWpEIMhFWtguYCDkVmVPvGUd49aIyFdaABg4Vjo0F26NCTtWGrqmwadgYNBXCbyyo2WxkV3V1tQYscGhwTC5vjwY5qZUd0yCn4rJCNNiD1HJOkVD1qzbUQQYME4qU/OxZnolwO9WyMTicNBOzzHwp89RdCnjxXqr0SBo9VNt5J5xqpn23LEs0g6lsqwzHsozJoT3QqSvChqVTA1XtDS5vV3N9HvnfPj3aP/76O15+fL59QvNr9slS7HdZh97xumhDymdiqoAI11RlOOI1zxkuagJPGQDr7U7TmU5aN8gCINwrZlm+p6lMJ+0WxFqbe4VsxEfVNKaGAEnYt8m94n70Ku809HAZKuyy6Af3ipsmp8GIOpw0Wrg8yOa6zHG8yn2J+2izeoBf8aMTeKCwYD86DvaQBbus7cG94qahdcAsCKrXIN9c2Mg3ns+DGZnle3WEqIbgQOFAbWyl1RIJdtpFhn/JTSMegGlQE8dDGg+yYYm8gcIDWgSKdE9oCg0YFuzHVsc+smCXbWT4l6xGL63TdguYBdmIhFIyfFNcwFCgwEady0qlOzmUHP4QZJebA0OppqyiWpx7Uqs6L6SW+uhZIbXcjgZHSDXLfTeVsG5RZvH61gpMl4aWtdTSzCRJ9DvT01jT21novt1NRO3ulFggUIAEXGaIS+dzTF9rdQ6TGUIP1bbVsQu+3Z7Sex+vvBNL9CEJ+U4JDCAdvx/qlXwhv0blPShKPqdaolJSPnwNi1P6cFhifv90rMb1DIcSvahPiNL1fE6pROn1SC4Xv9Dhq1nlwIfFSETyPYFwYzfwQOFCY9Sz2uJC6aq+IRAq6CsTGvD1LIPVs1SqNdIUFjAMOGpZbTGgfEnfUFjMMuCLWQYbnlA8o6kGKGAIcCw51xoBSlfzDTUqzp02XMAEyIYj1Ffza+AChQOnbNSCAainav7JSMW+rHpKfoUjqk4pAV6n9XdhUdWgRtI6VvIt1uZq1uwdkrBqltNVu+MDvdn9cnvH+hE7ky+sVpYOst8D/5LZ2JlKwqoFP3zG6YEzKGG1BkQSKhPxL3kMpbVFiF12euBfMhtJU0hYhdX9hn+JbCwtF1ZFs/CAMGQ3IIFhxDG21hYjdtnNgX/JCofWYPVy4F8iG1pTXFuA3ceBX+FDIK428t+r+K/TLg58cNVo4nDacOESIKeFg/L5JbD7N/AveWzf0BoFdtm9gQ+uGs0bThsuYApkgxJk4CX2yQwugpnKRAi6gwP/ksdGsK0RYZf9G/jgNg10QCZCUD1g+ZfIxiISnFUQU5kCQbd35V9y00J7IwUeo0Bdk02BinSwOW24cCmQ079mjeKEzKraLCiODBQWFOlfM7Lg61hwKp0Fm4Y7ALNgZbiAWZANSKifcFwDFzAcKLAxSaWEY14bppP1JOBkHOvTwzzhKZ1QKpxxrFEjGR33YXIEIjA9Nboj3f0sQasrk+0AWZ1GZaebr7Y6aiR6oMsZnYmdr2b0/lpf4B8/3bs/U7T0+RWzrTAtrOjA+qw/G1y+cZ3k9vWWnKBZ6+fdm+SnRfb/R7KWImZJ3vdRQv7dpEEYJF6KNnFSfgO54u2XbD/CWDt5XORPozTGvxH1fOM88vbMfO8O0KdXbHJu9iwKZl74tnjurcgzLb91qAchzh6EaQaNOamukHmQcez/eKo8XYOMPB9tsVUhXVXuNY87vhHwlvyXMIK3aRoHD5sDQ8iqjCT5K/JP1VFk0CahaeWHdrUIOZ5C6UN3YxM8T+ESNnHjpV6IFxs0WsRxi7B5GcXd4s/TTi+B/7dN8BiM2B/H3qCaTV5bHDKoTmpoDORljDN8douK2Fsvv2AfZWf8Hw== \ No newline at end of file From 8e6241415112386f337b68d2774e09c0292681cd Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 6 May 2021 15:41:11 +0200 Subject: [PATCH 012/172] Add user email in database schema --- documentation/db_plafor.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/db_plafor.drawio b/documentation/db_plafor.drawio index 99c057c5..4778b4af 100644 --- a/documentation/db_plafor.drawio +++ b/documentation/db_plafor.drawio @@ -1 +1 @@ -7V1dk5s6Ev018zgpA+brMZlMkq1NdnMnuZXavEwxRrZJMHIAz8f99SswYFuSbTEY1AhSqWSMsczoNAd1n1b3lXGzev4Ye+vlF+yj8Eqf+M9XxvsrXddtfUL+y468bI9oru1sjyziwC+O7Q58C/5BxcHig4tN4KPk4MQU4zAN1ocHZziK0Cw9OObFMX46PG2Ow8NvXXsLxBz4NvNC9uiPwE+XxVHNcndvfELBYll8taPb2zdWXnly8ZskS8/HT3uHjNsr4ybGON3+tHq+QWE2e+W8bD/34ci71YXFKEpFPmBi56sZvb/WF/jHT/fuzxQt/WtrO8qjF26KX7i42PSlnIEYbyIfZYNMrox3T8sgRd/W3ix794mATo4t01VIXmnkx3kQhjc4xHH+WQNpvolscjxJY/wb7b3jWrbhWeQdTMYK0sw8zGz84npQnKLno7+oVk0fMTyEVyiNX8gpxQeud+g88SBb7sE1nRboeIWdLKrhdlNJfihms8bMmu3OLJlXx5/yZtbRHwyr9Zkt7ufr6WTCTLXJnenJBWb6+11yHX54+3fi/jI/4p/P7/6nr6+1EsO9ud4kKL6f4U2cIGbayY24zn5MvYfsEJlBL04L5jGymSJcknpBhOJi6mc4DL11EuSnb48sg9D/7L3gTVoOVL4iQD0j/25LPNm5hIM+k8GSAuY5GfxbcTHZ214YLCLy84xgkH3juxgl5Fo+e0lanHEEJQ6Wx4FzyjkqcTMsFjfN0ljcdLM93DQGt6NgkV8/DbzwjnC8Fy1y3A5hyebWj/H6uxcvUFocWOMgm9XbRzJ1FQB7N1KEo2ykFK+LN0M0Lz/7gNMUr0oQiwmpBs0nw3xH/pLpuZm8Ma9Mcrk35LW2e03+ZqfH6Q2OyH1KbCobAxFon1AGLwfaMxZ+HvECYEMQXqM9dHUG3a//rodv/kj3dvjWhm5CQUfffJhM6DzMn8rLwPdRVAcT8btwD4RyvjvCwGAwIB+Qi0FJeNtz3yXZUypafN5+0qJAMrsD6fn4jWN0euOYLGgQaZHGtRe0KPrUaxHdKYPuB0i0OGl4x1XWC5gWTXZxPv99n60Z+8SNHSIFhxvdkRvb4kZXOjdarCOnFje6wphI40aLdcoINxIfOd0kg2JHcazgsKNAOG9kx9exo6ZLp0fTVpweLWFQ5C0dHR49nok0qkiP4liBoccp63qN9HgpejSl0+NUQHLp9o5EflCO1zjaOBVGRF60kV1++F6K7h/QIoigk2NH4MAhQ3YxMZLhpcjQkU+G7DpFITK0hRGRR4ZspConQxT5SlOhODRgqNBkw04jFV6ICqtELoluc9M0A8hUaIojIs9n1hkAvHi2DB7Be8wdISOBCbk5awLCc5OctbkzQ7PZFSdn7cExp3mSWgs5a1aZePZCH9ib5+rY/jxbl0hZ4040e0NcdKJ9Dzlz7kRbMwc9zNuZaDY5sEqGPZscWJ7YZKav//rrX99//ecGRYb788Ptx9WXL59ETBr5C1SGxcjvSmblDoVeGuDodvfONni2TRLU9MPZJ0u6t1mqMXl5e/cPivF3/MWLXrbvfAjC8rw80XB35sqL/P/mrJW/UZw44VJMgUaCN/EMnWCdMrs6LVcfR+lJK5z17LcXfWxovLukOhjns/aIDq6YB2jxHV+z9cue/TiW9sax3N2fQ2MybeeNeTjodjqKcXaGwhnapAazaQ7dThgzVG5z1WS83gwFIo8DNUN3QGbo0mY4pZNrL2eG/OlmF2KzP5sgCTIzuw/RY7Z948iSbEjp0jqdLl0dOHBjOGbotrWKFlgyAPBRAeRKC4N9KlO6S/+IXaKolCetC+Mhyz9ln82DypEWB+iUm9olYE11vsGE6+pSITc7uktkm+YvAY7UmcJgyOJBVhCMvJXKITpxSKAwn9a5H0l5h0cczH3P8eQa/KznWHpIZz3H4heH4zdOaedOp/cWC/uJ+pQaytI69hPZR+wMr1ao+LbRPaTcQ5ObHMqzNqc1auhH7i8AB1Gc9qF4iBr7aFbJRdR6kPfLptMMykmsARGUtZI+bhVrixCl+4nlwIruhKhMFy4hGqyUMP99n1vhoHbR1oAKCjEa/ZAS+kiM3C20nWLLigkqEWNluoCJkQ3REGLcl1kHt5e2BmpQOFIfNYa2OJK/kbZTcBWWGXT4OoPORjPOBReBcGI3uEDhQGPkwNY4kLtbtlNwFeZAAz4HGiwH5rvDZjHKpTqFmbAGOmCYUCCU2GL67tGEXXbGL56gW8Y34Oispk2Lo7SmJqyzTumhbHqolnVWTuXiGp7ikCTXSmGt1HXuHmue4Vlt0cJYv1iQ8i9UvrjTpFA2SKqS5NqD4sVDr118odLFnSbmjpJrW4QoXXJVvDZnD0pz8itzim/gAkiR3YEGhiL7kabXR4qULr4qXp+zB+U5+dU5RZoBKUiO/UvZGztftEaO8lVXxRtf9KDvBb/tBX74RWa1B8WY5IAFhRstuZVsWtAgygDHWQ2izB+Co0FMHbqQh+W+uirIlC6bZNrMYC3rEBbLzfmiKX1Zj/0Tr/LaVuWHKpBEW0lp7VFCPxI05OsPlnh9ZijtEy02TqCS/mDBT9GwWG9+UPpDDYigVPK1mha9Hor/WJ8QpTdOLBdJKiasVXYLlw1tVv5RvDpIDVCg8J/dj4SUPvKf9OaItq4u/9niDpk0/mPDL95shpKkH6JrN+CA4UF26X6yue+QIhkOXbvGFlUGdP0EXsUX7uy8+gJO5VQR3cELySREXoreZYXQE8YmLhD1svvhLsiPn9jiTV2g5G/arLugUvzEhu8xOKzHMKj4SQ2IoGhM7tggsy1ClJ6/6bJigUryuyvu0ckiRJcN6ZfJSSd1NoDU2B1YUKjRGUMrbVGj9LxNR+HQigM/tOKwoZWMFBUPL9cABgwHjsvDtjhQfnqmo3D3dAf+4tBhF4drL0mecAzeZ+4GGDAkOPZNb40EpVfFcRTumu7Ab5rusEHboVTFqYEOFCZ0RyZsjQlFi5u0B67CTOjCZ0KXZUL1W6bXwAUKB2oTgbhgv7bllHm/Z7fllFFcONtyTGZbjk0BL7wphxnKpodquwXThA2LFeX17731OsM1mI2bc662m3OonBZnIvj8bG9zjjbpR7RMfnbJztL7k16iTdhwmUr5JTvrhbtG0iZszGxQGSZ1QAKzYOpJnzr5XuMraFF6konG6VSnUpaJ1odWdZxedYNszVQHLDj0OJZQbI0epSeaVH6KsvQIv4piVciBKqN43qVWkSH7V0BR0/npQkWBt7Fm+l5cZOJQcRF+0XRe0ZJJe/iNcRHBu1O/TFyky513GqdxmlJxEb0HcRFOf7NhxUVqgARly6rG6YoGkRYBLPzr06L04iWarrCcvjNdyJzI+tWKJ5jXgQUMC1r6+fukX3J69TA6q6drZTl7OIK6U+ahvFAD19bT7XKkruRzTr3U85Vuh+Qd6gaFLWcLgs6zrpN1IBre/qNvKEju1iV8Qy68LZK74r5hjapS0tZBnLqiw/INa4B0YlVkdwqaPWrmrdEixzfsmBY51aqUEoXsHmjmnFJQWWuENYpzx8IL72d4tUYpioYlENXADgxbcgo3j2x5IbbkSOhdLyJVjqRZPYikcQoxJy+rB6xyDcw6wIDhQU7J5pEHL8SDwsGSFuFtWpEIMhFWtguYCDkVmVPvGUd49aIyFdaABg4Vjo0F26NCTtWGrqmwadgYNBXCbyyo2WxkV3V1tQYscGhwTC5vjwY5qZUd0yCn4rJCNNiD1HJOkVD1qzbUQQYME4qU/OxZnolwO9WyMTicNBOzzHwp89RdCnjxXqr0SBo9VNt5J5xqpn23LEs0g6lsqwzHsozJoT3QqSvChqVTA1XtDS5vV3N9HvnfPj3aP/76O15+fL59QvNr9slS7HdZh97xumhDymdiqoAI11RlOOI1zxkuagJPGQDr7U7TmU5aN8gCINwrZlm+p6lMJ+0WxFqbe4VsxEfVNKaGAEnYt8m94n70Ku809HAZKuyy6Af3ipsmp8GIOpw0Wrg8yOa6zHG8yn2J+2izeoBf8aMTeKCwYD86DvaQBbus7cG94qahdcAsCKrXIN9c2Mg3ns+DGZnle3WEqIbgQOFAbWyl1RIJdtpFhn/JTSMegGlQE8dDGg+yYYm8gcIDWgSKdE9oCg0YFuzHVsc+smCXbWT4l6xGL63TdguYBdmIhFIyfFNcwFCgwEady0qlOzmUHP4QZJebA0OppqyiWpx7Uqs6L6SW+uhZIbXcjgZHSDXLfTeVsG5RZvH61gpMl4aWtdTSzCRJ9DvT01jT21novt1NRO3ulFggUIAEXGaIS+dzTF9rdQ6TGUIP1bbVsQu+3Z7Sex+vvBNL9CEJ+U4JDCAdvx/qlXwhv0blPShKPqdaolJSPnwNi1P6cFhifv90rMb1DIcSvahPiNL1fE6pROn1SC4Xv9Dhq1nlwIfFSETyPYFwYzfwQOFCY9Sz2uJC6aq+IRAq6CsTGvD1LIPVs1SqNdIUFjAMOGpZbTGgfEnfUFjMMuCLWQYbnlA8o6kGKGAIcCw51xoBSlfzDTUqzp02XMAEyIYj1Ffza+AChQOnbNSCAainav7JSMW+rHpKfoUjqk4pAV6n9XdhUdWgRtI6VvIt1uZq1uwdkrBqltNVu+MDvdn9cnvH+hE7ky+sVpYOst8D/5LZ2JlKwqoFP3zG6YEzKGG1BkQSKhPxL3kMpbVFiF12euBfMhtJU0hYhdX9hn+JbCwtF1ZFs/CAMGQ3IIFhxDG21hYjdtnNgX/JCofWYPVy4F8iG1pTXFuA3ceBX+FDIK428t+r+K/TLg58cNVo4nDacOESIKeFg/L5JbD7N/AveWzf0BoFdtm9gQ+uGs0bThsuYApkgxJk4CX2yQwugpnKRAi6gwP/ksdGsK0RYZf9G/jgNg10QCZCUD1g+ZfIxiISnFUQU5kCQbd35V9y00J7IwUeo0Bdk02BinSwOW24cCmQ079mjeKEzKraLCiODBQWFOlfM7Lg61hwKp0Fm4Y7ALNgZbiAWZANSKifcFwDFzAcKLAxSaWEY14bppP1JOBkHOvTwzzhKZ1QKpxxrFEjGR33YXIEIjA9Nboj3f0sQasrk+0AWZ1GZaebr7Y6aiR6oMsZnYmdr2b0/lpf4B8/3bs/U7T0+RWzrTAtrOjA+qw/G1y+cZ3k9vWWnKBZ6+fdm+SnRfb/R7KWImZJ3vdRQv7dpEEYJF6KNnFSfgO54u2XbD/CWDt5XORPozTGvxH1fOM88vbMfO8O0KdXbHJu9iwKZl74tnjurcgzLb91qAchzh6EaQaNOamukHmQcez/eKo8XYOMPB9tsVUhXVXuNY87vhHwlvyXMIK3aRoHD5sDQ8iqjCT5K/JP1VFk0CahaeWHdrUIOZ5C6UN3YxM8T+ESNnHjpV6IFxs0WsRxi7B5GcXd4s/TTi+B/7dN8BiM2B/H3qCaTV5bHDKoTmpoDORljDN8douK2Fsvv2AfZWf8Hw== \ No newline at end of file +7V1rk5s6Ev0183FSBszDH5PJa3eT3WSSW6nNlynGyDYJRg7gedxffwUGbEuyLYaHGkEqlcxgLGOd5qDu0+q+Mm7WTx8id7P6jD0UXOkT7+nKeHulkz+mSf5LjzzvjmhTe7I7sox8Lz+2P/DN/xvlB4vTtr6H4qMTE4yDxN8cH5zjMETz5OiYG0X48fi0BQ6OP3XjLhFz4NvcDdijP3wvWeVHNWu2f+Ej8per/KMd3d69sHaLk/NvEq9cDz8eHDLeXRk3EcbJ7qf10w0K0tkr5mX3vvcnXi0vLEJhIvIGEztfzPDttb7EP37Obv9M0cq7tnajPLjBNv/C+cUmz8UMRHgbeigdZHJlvHlc+Qn6tnHn6auPBHRybJWsA/KbRn5c+EFwgwMcZe81kOaZyCbH4yTCv9HBKzPLNlyLvILJWH6SmoeZjs9+q/yLPqAoQU8Hh/Jv+QHhNUqiZ3JK/ur1Hp1HHmSrA7im0xwdN7eTZTncfirJD/lsVphZs92ZJfPqeFPezDr6vWG1PrP5/Xw9nUyYqTa5Mz1pYKa/38bXwfvXf8WzX+YH/PPpzf/1zbVWYHgw19sYRXdzvI1ixEw7uRE36Y+Je58eIjPoRknOPEY6U4RLEtcPUZRP/RwHgbuJ/ez03ZGVH3if3Ge8TYqBit8IUE/Iu90RT3ou4aBPZLA4h3lBBv+WX0z6shv4y5D8PCewpJ/4JkIxuZZPbpzkZzQBnFPMUYGbYbG4aZbG4qab7eGmMbidBIt8/cR3g1vC8W64zHA7hiWdWy/Cm+9utERJfmCD/XRW3z2QqSsBOLiRQhymIyV4k78YoEXx3nucJHhdgJhPSDloNhnmG/KXTM/N5JV5ZZLLvSG/a/vfyd/09Ci5wSG5T4lNpWMgAu0jSuHlQHvBwi8jngNsCMJrtIeuzqD75T/V8M0e6e4e38rQTSjo6JsPkwldBNlTeeV7HgqrYCJ+Fx6AUMx3RxgYDAbkDXIxKAhvd+6bOH1KhctPu3daFEhmdyA9nb5xjE5vHJMFDSIt0rj2ghZFn3otojtl0H0PiRYnNe+40noB06LJLs4Xv+/SNWOfuLFDpOBw42zkxra4cSadGy3WkVOLG2fCmEjjRot1ygg3Eh852caDYkdxrOCwo0A4b2THl7GjpkunR9NWnB4tYVDkLR0dHj1eiDSqSI/iWIGhxynreo302BQ9mtLpcSoguXR7RyLPL8arHW2cCiMiL9rILj88N0F392jph9DJsSNw4JAhu5gYybApMnTkkyG7TlGIDG1hROSRIRupysgQhZ7SVCgODRgqNNmw00iFDVFhmcgl0W2um2YAmQpNcUTk+cw6A4AbzVf+A3iPuSNkJDAhN2dNQHiuk7O2cOZoPr/i5KzdO+Y0S1JrIWfNKhLPnukDB/NcHjucZ6uJlDXuRLM3RKMT7bnIWXAn2po76H7RzkSzyYFlMuzF5MDixDozff3167++//rvDQqN2c/37z6sP3/+KGLSyFuiIixGvj6ZlVsUuImPw3f7V3bBs12SoKYfzz5Z0r1OU43Jr+9u/0YR/o4/u+Hz7pX3flCclyUa7s9cu6H3v4y1shfyE8+iEeNtNEdnWMfOl/1Jsfo4SU9a7qyn3170saHx7pLyYJTN2gM6umIeoPlnfEnXLwf241jaK8ea7f8cG5NpO6/M40F305GPszcUztAmNZhNc+huwpihMpsrJ+PlZigQeRyoGc4GZIYz2gyndHJtc2bIn252ITb/s/VjPzWzuwA9pNs3TizJhpQurdPp0uWBIzeGY4aztlbRAksGAD4qgFxpYbDPZUp36R+xSxSV8qR1YTxk+afss3lQOdLiAJ1zU7sErK7ON5hwXVUq5GZHd4ls3fwlwJE6UxgMWTzICoKhu1Y5RCcOCRTm0zr3Iynv8ISDeeg5nl2DX/QcCw/poueYf3E4fuOUdu50em+xsJ+oT6mhLK1jP5F9xM7xeo3yTxvdQ8o9NLnJoTxrc1qjhn7k/gJwEMVpH4qHqLGPZpVcRK0Heb9sOs2gnMQKEEFZK+njVrG2CFG6n1gMrOhOiNJ04RKiwUoJi993mRUOahdtBaigEKPRDymhj8TI3ULbKbasmKASMZamC5gY2RANIcZDmXVwe2kroAaFI/VRY2iLI/kbaTsFV2GZQYevM+hsNONScBEIJ3aDCxQONEYObI0DubtlOwVXYQ404HOgwXJgtjtsHqFMqlOYCSugA4YJBUKJLabvnkzYZWe88QTdIr4BR2c1bVocpTU1YZ11Sg9l00O1rLNyKhdX8BSHJLmWCmuprnP3WPMMz2qLFsb6xYKU31D54k6TQtkgqUqSaw+KFw+9dnFDpYs7TcwdJde2CFG65Kp4bc4elObkV+YU38AFkCK7Aw0MRfYjTa+PFCldfFW8PmcPynPyq3OKNANSkBz7l7I3dr5ojRzlq66KN77oQd8LftsLfP+LzGoPijHJAQsKN1pyK9m0oEEUAY6LGkSRPwRHg5g6dCEPa/biqiBTumySaTODtaxDWCw3Z4um5Hkz9k+8ympbFW8qQRJtJaW1Rwn9SNCQrz9Y4vWZobRPtNg4gUr6gwU/RcNivflB6Q8VIIJSydeqW/R6KP5jdUKU3jixWCSpmLBW2i1cNrRZ+Ufx6iAVQIHCf3Y/ElL6yH/SmyPaurr8Z4s7ZNL4jw2/uPM5iuN+iK7dgAOGB9ml+9nmvkOKZDh07RpbVBnQ6WK1nEDZ3s7LD+BUThXRHdyATELoJuhNWgg9ZmyigaiX3Q93QX78xBZv6gIlf9Nm3QWV4ic2fI/BYT2GQcVPKkAERWOajQ0y2yJE6fmbM1YsUEl+n4l7dLIIccaG9IvkpLM6G0Bq7A4sKNTojKGVtqhRet6mo3BoxYEfWnHY0EpKioqHlysAA4YDx+VhWxwoPz3TUbh7ugN/ceiwi8ONG8ePOALvM3cDjAQS/PdX589H7V5DTvjoPyx+Ltc45rTQGiQHMogJ0+JpDuyyKA4X2/6uAy/AcdqSpTAg93LYVSBau36PlbUGMQGzAmSFtUGyXxsrQNF6Ju2BW1cOg7wCFMdD2gqQVayGUhKsAjpQmHA2MmFbTKhrsplwpjATzuAz4YxlQjear3qwRbEbXKBwoDYRcIb7tSex2PRwcU9iIWHB2ZNoMnsSbQp44R2JzFA2PVTb/ecmrDeY9xa5czebFFd/Pu5MvNrtTKQS+pyJ4POzvZ2J2qQfUoH81Lq9pfcnt06bsFqBSsl1e+uFu0bSJqxgMKj0uioggVkw9aRJp3yv8QW0KD3DTuO06VQpxU7rQ59OTqPOQfalqwIWHHoc68e2Ro/Ss+xKP0VZeoRfQrasYkPVkL3sUqvIkP2rHqvp/FzJvLrl2DDiIC4ycai4CL9jBK9i06Q9/Ma4iODdqTcTF+ly27HG6RqpVFxE70FchNPccVhxkQogQdmvr3FaQkKkRQAL/+q0KL1yk6YrLKfvTRcyJ7J+teK7a6rAAoYFLf3yfdIvOb18GF3U07WilwccQd0p8lCeqYEr6+l2MVJX8jmnWPTlMt9D8g51g8KWs/9K51mXrrd3+4++oSC5W034hlx4WyR3xX3DCiX1pK2DOEWVh+UbVgDpzKrI7hQ0e9TMW6NFjm/YMS1ySvUpJQrZPdDMOXXw0r4wGxRljoUb3M3xeoMSFA5LIKqAHRi25FStH9myIbbkSOhdLyJVjqRZPYikcarQx8/re9zjbcqNAgOGBzn16kcebIgHhYMlLcJbtwwHZCIsbRcwEXLK0SfuEw7x+lllKqwADRwqHLuqtkeFnJo1XVNh3bAxaCqE31VVs9nIrurqagVY4NDgmFzeHg1yUis7pkFOuXmFaLAHqeWcCsnqV22oggwYJhSpd9yzPBPhXtJmHtOFk2ZiFpkvRZ76jAJevJE0PZJGD9V23gmnlHPfLcsSzWAqesrDsSxjcmwPdOqKsGHp1EBlb5fm7WqhL0Lv28cH+8fXv6LVh6d3j2jBqbma73fZBO7pumhDymdiqoAIF5RmOOIlzxkuagJPGQDr7U7Tmc5aN8gCINwrZlm+p6lMZ+0WxFqbe4VsxEfVNKaaAEnYt8m94rq19RUMPTRDhV0W/eBecd3kNBhRh7NGC5cH2VyXBY7WmS9xF27X9/ArfnQCDxQW7Ee71R6yYJe1PbhXXDe0DpgFQTVa5ZsLG/nGi4U/J7N8p44QVRMcKByojf1jWiLBTlto8S+5bsQDMA1q4nhI40E2LJE1ULhHS1+R7gl1oQHDgv3Y6thHFuyyiRb/ktVoJHjebgGzIBuRUEqGr4sLGAoU2KjTrFS6l0PJ4fd+erkZMJRqyiqq+blntarLQmqhj14UUovtaHCEVLPYd1MK6xZlFi9vrcB0aWhZSy3MTJJEvzc9jTW9vYUe2t1E1O7OiQUCBUjAZYbM6HyO6UutzmEyQ+ih2rY6dsG331N65+G1e2aJPiQh3ymAAaTj90O9ki/kV6i8B0XJ51RLVErKh69hcUofDkvM75+OVbue4VCiF9UJUbqezymVKL0eSXPxCx2+mlUMfFyMRCTfEwg3dgMPFC40Rj2rLS6UruobAqGCvjKhAV/PMlg9S6VaI3VhAcOAo5bVFgPKl/QNhcUsA76YZbDhCcUzmiqAAoYAx5JzrRGgdDXfUKPi3HnDBUyAbDhCfTW/Ai5QOHDKRi0YgHqq5p+NVBzKqufkVzii6pQS4HVafxcWVQ1qJK1jJd9iba5izd4hCatmMV2VOz7Qm92b2zvWj9iZfGG1tHSQ/R74l8zGzlQSVi344TNOD5xBCasVIJJQmYh/yWMorS1C7LLTA/+S2UiaQsIqrO43/EtkY2mZsCqahQeEIbsBCQwjjrG1thixy24O/EtWOLQGq5cD/xLZ0Jri2gLsPg78Ch8CcbWR/17Ef512ceCDq0YTh/OGC5cAOS0clM8vgd2/gX/JY/uG1iiwy+4NfHDVaN5w3nABUyAblCADr7BHZnDpz1UmQtAdHPiXPDaCbY0Iu+zfwAe3bqADMhGC6gHLv0Q2FhHjtIKYyhQIur0r/5LrFtobKfAUBeqabApUpIPNecOFS4Gc/jUbFMVkVtVmQXFkoLCgSP+akQVfxoJT6SxYN9wBmAVLwwXMgmxAQv2E4wq4gOFAgY1JKiUc89owna0nASfjWJ8e5wlP6YRS4YxjjRrJ6LgPkyMQgemp0Z3o7mcJWl2RbAfI6jQqO918sdVRI9EDNWd0Jna+mOHba32Jf/yc3f6ZopXHr5htBUluRUfWZ/3Z4uKF6zizr9fkBM3aPO1fJD8t0/8/kLUUMUvyuodi8u828QM/dhO0jeLiE8gV7z5k9xbG2snjInsaJRH+jajnG+eRd2DmB3eAPr1ik3PTZ5E/d4PX+XNvTZ5p2a1DPQhx+iBMUmjMyTljr1GDjDwfbbFVIV1V7iWPO74R8Jb8TRjB6ySJ/PvtkSGkVUbi7DfyT9lRZNAmoWnFm/a1CDmeQuFDd2MTPE+hCZu4cRM3wMstGi3itEXYvIzibvHnaadN4P9t6z/4I/ansTeoZpPXFocMypNqGgP5NcIpPvtFReRuVp+xh9Iz/gE= \ No newline at end of file From 364478b195855c3ec6085962623c9a1b93e5c34b Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 7 May 2021 13:47:35 +0200 Subject: [PATCH 013/172] Updated models ------- not ended --- orif/plafor/Controllers/Admin.php | 73 +++++++++++++++++++ orif/plafor/Models/acquisitionLevelModel.php | 24 +++++- orif/plafor/Models/acquisitionStatusModel.php | 48 ++++++------ orif/plafor/Models/commentModel copy.php | 42 ----------- orif/plafor/Models/commentModel.php | 47 ++++++++++++ orif/plafor/Models/competenceDomainModel.php | 37 ++++++---- orif/plafor/Models/coursePlanModel.php | 27 +++++++ orif/plafor/Models/objectiveModel.php | 30 ++++++-- .../Models/operationalCompetenceModel.php | 31 ++++++-- orif/plafor/Models/trainerApprenticeModel.php | 10 +++ orif/plafor/Models/userCourseModel.php | 12 ++- orif/plafor/Models/userCourseStatusModel.php | 10 +++ orif/plafor/Views/course_plan/delete.php | 25 +++++++ 13 files changed, 316 insertions(+), 100 deletions(-) delete mode 100644 orif/plafor/Models/commentModel copy.php create mode 100644 orif/plafor/Models/commentModel.php create mode 100644 orif/plafor/Views/course_plan/delete.php diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 8969eb5c..75ba95c8 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -4,7 +4,10 @@ namespace Plafor\Controllers; +use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; +use Plafor\Models\ObjectiveModel; +use Plafor\Models\OperationalCompetenceModel; use Plafor\Models\UserCourseModel; class Admin extends \App\Controllers\BaseController @@ -12,6 +15,7 @@ class Admin extends \App\Controllers\BaseController private $validation; public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { + $this->access_level=config('\User\Config\UserConfig')->access_lvl_admin; parent::initController($request, $response, $logger); $this->validation = \Config\Services::validation(); } @@ -98,6 +102,75 @@ public function save_course_plan($course_plan_id = 0) $this->display_view('\Plafor\course_plan\save', $output); } + /** + * Deletes a course plan depending on $action + * + * @param integer $course_plan_id = ID of the course_plan to affect + * @param integer $action = Action to apply on the course plan: + * - 0 for displaying the confirmation + * - 1 for deactivating (soft delete) + * - 2 for deleting (hard delete) + * @return void + */ + public function delete_course_plan($course_plan_id, $action = 0) + { + $competenceDomainIds=[]; + $objectiveIds=[]; + $coursePlanModel=new CoursePlanModel(); + $competenceDomainModel=new CompetenceDomainModel(); + $operationalCompetencesModel=new OperationalCompetenceModel(); + $objectiveModel=new ObjectiveModel(); + + $course_plan = $coursePlanModel->find($course_plan_id); + if (is_null($course_plan)) { + return redirect()->to('/plafor/admin/list_course_plan'); + } + switch($action) { + case 0: // Display confirmation + $coursePlanModel->getUserCourses($course_plan); + exit; + $output = array( + 'course_plan' => $course_plan, + 'title' => lang('title_course_plan_delete') + ); + $this->display_view('\Plafor\course_plan\delete', $output); + break; + case 1: // Deactivate (soft delete) course plan + //get linked competence domain + + $competence_domains=$competenceDomainModel->getWhere(['fk_course_plan'=>$course_plan['id']])->getResultArray(); + foreach ($competence_domains as $competence_domain){ + $competenceDomainIds[] = $competence_domain['id']; + } + //no need + //$competenceDomainId = implode(',',$competenceDomainIds); + + //get operational competences + //No need + $operational_competences = $operationalCompetencesModel->whereIn('fk_competence_domain',$competenceDomainIds)->findAll(); + $objectives=null; + //get Objectives + foreach ($operational_competences as $operational_competence){ + //get objectives linked to operational competence + $objectives=$objectiveModel->getWhere(['fk_operational_competence'=>$operational_competence['id']])->getResultArray(); + } + foreach ($objectives as $objective){ + $objectiveIds[] = $objective['id']; + } + //no need + //$objectiveId = implode(',',$objectiveIds); + var_dump($objectiveIds); + $objectiveModel->whereIn('id',$objectiveIds)->delete(); + $operationalCompetencesModel->whereIn('fk_competence_domain',$competenceDomainIds)->delete(); + $competenceDomainModel->where('fk_course_plan',$course_plan_id); + $coursePlanModel->delete($course_plan_id, FALSE); + return redirect()->to('/plafor/admin/list_course_plan'); + break; + default: + // Do nothing + return redirect()->to('/plafor/admin/list_course_plan'); + } + } } \ No newline at end of file diff --git a/orif/plafor/Models/acquisitionLevelModel.php b/orif/plafor/Models/acquisitionLevelModel.php index a900c231..9f99fb2c 100644 --- a/orif/plafor/Models/acquisitionLevelModel.php +++ b/orif/plafor/Models/acquisitionLevelModel.php @@ -2,13 +2,31 @@ namespace Plafor\Models; use CodeIgniter\Model; +use phpDocumentor\Reflection\Types\Void_; class AcquisitionLevelModel extends Model{ - - protected $table='comment'; + private static $acquisitionLevelModel; + protected $table='acquisition_level'; protected $primaryKey='id'; protected $allowedFields=['name']; - + + /** + * @param $acquisitionLevelId /the id of acquisition_level + * @return array|null + */ + public static function getAcquisitionStatus($acquisitionLevelId){ + return AcquisitionStatusModel::getInstance()->where('fk_acquisition_level',$acquisitionLevelId)->findAll(); + } + + /** + * @return AcquisitionLevelModel + */ + public static function getInstance(){ + if (AcquisitionLevelModel::$acquisitionLevelModel==null) + AcquisitionLevelModel::$acquisitionLevelModel=new AcquisitionLevelModel(); + return AcquisitionLevelModel::$acquisitionLevelModel; + } + } diff --git a/orif/plafor/Models/acquisitionStatusModel.php b/orif/plafor/Models/acquisitionStatusModel.php index 53306839..90fb1072 100644 --- a/orif/plafor/Models/acquisitionStatusModel.php +++ b/orif/plafor/Models/acquisitionStatusModel.php @@ -6,45 +6,45 @@ use CodeIgniter\Validation\ValidationInterface; class AcquisitionStatusModel extends Model{ - + private static $acquisitionStatusModel=null; protected $table='acquisition_status'; protected $primaryKey='id'; protected $allowedFields=['fk_objective','fk_user_course','fk_acquisition_level']; - private ObjectiveModel $objectiveModel; - private UserCourseModel $userCourseModel; - private AcquisitionLevelModel $acquisitionLevelModel; + private $objectiveModel=null; + private $userCourseModel=null; + private $acquisitionLevelModel=null; - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); + /** + * @return AcquisitionStatusModel + */ + public static function getInstance(){ + if (AcquisitionStatusModel::$acquisitionStatusModel==null) { + AcquisitionStatusModel::$acquisitionStatusModel = new AcquisitionStatusModel(); + } + return AcquisitionStatusModel::$acquisitionStatusModel; } - /** - * @param $acquisitionStatut /the array obtained from this model - * @return array + * @param $fkObjectiveId /the id of the fk_objective + * @return array|null */ - public function getObjective($acquisitionStatut){ - $this->objectiveModel = new ObjectiveModel(); - return $this->objectiveModel->find($acquisitionStatut['fk_objective']); + public static function getObjective($fkObjectiveId){ + return ObjectiveModel::getInstance()->find($fkObjectiveId); } /** - * @param $acquisitionStatut /the array obtained from this model - * @return array + * @param $fkUserCourseId /the id of the fk_user_course + * @return array|null */ - public function getUserCourse($acquisitionStatut){ - $this->userCourseModel=new UserCourseModel(); - return $this->userCourseModel->find($acquisitionStatut['fk_user_course']); + public static function getUserCourse($fkUserCourseId){ + return UserCourseModel::getInstance()->find($fkUserCourseId); } /** - * @param $acquisitionStatut /the array obtained from this model - * @return array + * @param $fkAcquisitionLevelId /the id of the fk_aquisition_level + * @return array|null */ - public function getAcquisitionLevel($acquisitionStatut){ - if ($this->acquisitionLevelModel==null) - $this->acquisitionLevelModel=new AcquisitionLevelModel(); - return $this->acquisitionLevelModel->find($acquisitionStatut['fk_acquisition_level']); + public function getAcquisitionLevel($fkAcquisitionLevelId){ + return AcquisitionLevelModel::getInstance()->find($fkAcquisitionLevelId); } } diff --git a/orif/plafor/Models/commentModel copy.php b/orif/plafor/Models/commentModel copy.php deleted file mode 100644 index e016ff48..00000000 --- a/orif/plafor/Models/commentModel copy.php +++ /dev/null @@ -1,42 +0,0 @@ -userModel==null) - $this->userModel=new User_model(); - return $this->userModel->find($comment['fk_trainer']); - } - public function getAcquisitionStatus($comment){ - $this->acquisitionStatusModel=new AcquisitionStatusModel(); - return $this->acquisitionStatusModel->find($comment['fk_acquisition_status']); - } -} - - - - - - -?> \ No newline at end of file diff --git a/orif/plafor/Models/commentModel.php b/orif/plafor/Models/commentModel.php new file mode 100644 index 00000000..0880fd12 --- /dev/null +++ b/orif/plafor/Models/commentModel.php @@ -0,0 +1,47 @@ +find($fkTrainerId); + } + + /** + * @param $fkAcquisitionStatusId + * @return array|null + */ + public static function getAcquisitionStatus($fkAcquisitionStatusId){ + return AcquisitionStatusModel::getInstance()->find($fkAcquisitionStatusId); + } +} + + + + + + +?> \ No newline at end of file diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 2b2d15e3..887ec4c7 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -6,29 +6,40 @@ use CodeIgniter\Validation\ValidationInterface; class CompetenceDomainModel extends Model{ - + private static $competenceDomainModel=null; protected $table='competence_domain'; protected $primaryKey='id'; protected $allowedFields=['fk_course_plan','symbol','name','archive']; protected $useSoftDeletes=true; protected $deletedField='archive'; - private CoursePlanModel $coursePlanModel; - /**To do - * Add method to get course_plan - */ - - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); + private $coursePlanModel=null; + private $operationalCompetenceModel=null; + /** + * @return CompetenceDomainModel + */ + public static function getInstance(){ + if (CompetenceDomainModel::$competenceDomainModel==null) + CompetenceDomainModel::$competenceDomainModel=new CompetenceDomainModel(); + return CompetenceDomainModel::$competenceDomainModel; } - public function getCoursePlan($competenceDomain){ - if ($this->coursePlanModel==null) - $this->coursePlanModel=new CoursePlanModel(); + /** + * @param $fkCoursePlanId + * @return array|null + */ + public static function getCoursePlan($fkCoursePlanId){ + + return CoursePlanModel::getInstance()->find($fkCoursePlanId); - return $this->coursePlanModel->find($competenceDomain['fk_course_plan']); + } + /** + * @param $competenceDomainId + * @return array|null + */ + public static function getOperationalCompetences($competenceDomainId){ + return OperationalCompetenceModel::getInstance()->where('fk_competence_domain',$competenceDomainId)->findAll(); } } diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index 37bc07ea..ffc5402f 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -4,12 +4,39 @@ use CodeIgniter\Model; class CoursePlanModel extends Model{ + private static $coursePlanModel=null; protected $table='course_plan'; protected $primaryKey='id'; protected $allowedFields=['formation_number','official_name','date_begin']; protected $useSoftDeletes=true; protected $deletedField='archive'; + private $userCourseModel=null; + private $competenceDomainModel=null; + /** + * @return CoursePlanModel + */ + public static function getInstance(){ + if (CoursePlanModel::$coursePlanModel==null) + CoursePlanModel::$coursePlanModel=new CoursePlanModel(); + return CoursePlanModel::$coursePlanModel; + } + + /** + * @param $coursePlanId + * @return array + */ + public static function getCompetenceDomains($coursePlanId){ + return CompetenceDomainModel::getInstance()->where('fk_course_plan',$coursePlanId)->findAll(); + } + + /** + * @param $coursePlanId + * @return array + */ + public static function getUserCourses($coursePlanId){ + return UserCourseModel::getInstance()->where('fk_course_plan',$coursePlanId)->findAll(); + } } diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 255e9fd8..734722fa 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -9,6 +9,7 @@ class ObjectiveModel extends \CodeIgniter\Model { + private static $objectiveModel=null; protected $table='objective'; protected $primaryKey='id'; protected $allowedFields=['fk_operational_competence','symbol','taxonomy','name']; @@ -16,14 +17,29 @@ class ObjectiveModel extends \CodeIgniter\Model protected $deletedField='archive'; private OperationalCompetenceModel $operationalCompetenceModel; - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); + /** + * @return ObjectiveModel + */ + public static function getInstance(){ + if (ObjectiveModel::$objectiveModel==null) + ObjectiveModel::$objectiveModel=new ObjectiveModel(); + return ObjectiveModel::$objectiveModel; } - public function getOperationalCompetence($objective){ - if ($this->operationalCompetenceModel==null) - $this->operationalCompetenceModel=new OperationalCompetenceModel(); - return $this->operationalCompetenceModel->find($objective['fk_operational_competence']); + + /** + * @param $fkOperationalCompetence + * @return array|object|null + */ + public static function getOperationalCompetence($fkOperationalCompetence){ + return OperationalCompetenceModel::getInstance()->find($fkOperationalCompetence); + } + + /** + * @param $objectiveId + * @return array + */ + public static function getAcquisitionStatus($objectiveId){ + return AcquisitionStatusModel::getInstance()->where('fk_objective',$objectiveId)->findAll(); } diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index b835ba24..c628f976 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -9,20 +9,37 @@ class OperationalCompetenceModel extends \CodeIgniter\Model { + private static $operationalCompetenceModel=null; protected $table='operational_competence'; protected $primaryKey='id'; protected $allowedFields=['fk_competence_domain','name','symbol','methodologic','social','personal']; protected $useSoftDeletes='true'; protected $deletedField='archive'; private CompetenceDomainModel $competenceDomainModel; - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); + + /** + * @return OperationalCompetenceModel + */ + public static function getInstance(){ + if (OperationalCompetenceModel::$operationalCompetenceModel==null) + OperationalCompetenceModel::$operationalCompetenceModel=new OperationalCompetenceModel(); + return OperationalCompetenceModel::$operationalCompetenceModel; + } + + /** + * @param $fkCompetenceDomain + * @return array|object|null + */ + public static function getCompetenceDomain($fkCompetenceDomain){ + return CompetenceDomainModel::getInstance()->find($fkCompetenceDomain); } - public function getCompetenceDomain($operationalCompetence){ - if ($this->competenceDomainModel==null) - $this->competenceDomainModel=new CompetenceDomainModel(); - return $this->competenceDomainModel->find($operationalCompetence['fk_competence_domain']); + + /** + * @param $operationalCompetenceId + * @return array + */ + public static function getObjectives($operationalCompetenceId){ + return ObjectiveModel::getInstance()->where('fk_operational_competence',$operationalCompetenceId)->findAll(); } } \ No newline at end of file diff --git a/orif/plafor/Models/trainerApprenticeModel.php b/orif/plafor/Models/trainerApprenticeModel.php index 2b9ddc6e..defe34be 100644 --- a/orif/plafor/Models/trainerApprenticeModel.php +++ b/orif/plafor/Models/trainerApprenticeModel.php @@ -10,10 +10,20 @@ class TrainerApprenticeModel extends \CodeIgniter\Model { + private static $trainerApprenticeModel=null; protected $table='trainer_apprentice'; protected $primaryKey='id'; protected $allowedFields=['fk_trainer','fk_apprentice']; private User_model $userModel; + + /** + * @return null + */ + public static function getInstance(){ + if (TrainerApprenticeModel::$trainerApprenticeModel==null) + TrainerApprenticeModel::$trainerApprenticeModel=new TrainerApprenticeModel(); + return TrainerApprenticeModel::$trainerApprenticeModel; + } public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) { parent::__construct($db, $validation); diff --git a/orif/plafor/Models/userCourseModel.php b/orif/plafor/Models/userCourseModel.php index c7874e52..6476434a 100644 --- a/orif/plafor/Models/userCourseModel.php +++ b/orif/plafor/Models/userCourseModel.php @@ -10,17 +10,21 @@ class UserCourseModel extends \CodeIgniter\Model { + private static $userCourseModel=null; protected $table='user_course'; protected $primaryKey='id'; protected $allowedFields=['fk_user','fk_course_plan','fk_status','date_begin','date_end']; private User_model $userModel; private CoursePlanModel $coursePlanModel; private AcquisitionStatusModel $acquisitionStatusModel; - /** create function to get user, course plan and status */ - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); + /** + * @return UserCourseModel + */ + public static function getInstance(){ + if (UserCourseModel::$userCourseModel==null) + UserCourseModel::$userCourseModel=new UserCourseModel(); + return UserCourseModel::$userCourseModel; } public function getUser($userCourse){ if ($this->userModel==null) diff --git a/orif/plafor/Models/userCourseStatusModel.php b/orif/plafor/Models/userCourseStatusModel.php index 3d0e0ae4..dcbb2eef 100644 --- a/orif/plafor/Models/userCourseStatusModel.php +++ b/orif/plafor/Models/userCourseStatusModel.php @@ -6,7 +6,17 @@ class UserCourseStatusModel extends \CodeIgniter\Model { + private static $userCourseStatusModel=null; protected $table='user_course_status'; protected $primaryKey='id'; protected $allowedFields=['name']; + + /** + * @return UserCourseStatusModel + */ + public static function getInstance(){ + if (UserCourseStatusModel::$userCourseStatusModel==null) + UserCourseStatusModel::$userCourseStatusModel=new UserCourseStatusModel(); + return UserCourseStatusModel::$userCourseStatusModel; + } } \ No newline at end of file diff --git a/orif/plafor/Views/course_plan/delete.php b/orif/plafor/Views/course_plan/delete.php new file mode 100644 index 00000000..26eebad2 --- /dev/null +++ b/orif/plafor/Views/course_plan/delete.php @@ -0,0 +1,25 @@ + +
+
+
+
+
+

username.'"' ?>

+

official_name.'"' ?>

+

name.'"' ?>

+

+
+
+ +
+
+
+
From 114622c443780cf1aec9bb88b01cc15f01a40707 Mon Sep 17 00:00:00 2001 From: HeMa Date: Mon, 10 May 2021 08:57:54 +0200 Subject: [PATCH 014/172] Updated models ------- ended --- orif/plafor/Models/trainerApprenticeModel.php | 29 ++++++------ orif/plafor/Models/userCourseModel.php | 45 ++++++++++++------- orif/plafor/Models/userCourseStatusModel.php | 8 ++++ orif/user/Models/User_model.php | 30 +++++-------- orif/user/Models/User_type_model.php | 7 +++ 5 files changed, 72 insertions(+), 47 deletions(-) diff --git a/orif/plafor/Models/trainerApprenticeModel.php b/orif/plafor/Models/trainerApprenticeModel.php index defe34be..74217832 100644 --- a/orif/plafor/Models/trainerApprenticeModel.php +++ b/orif/plafor/Models/trainerApprenticeModel.php @@ -14,29 +14,30 @@ class TrainerApprenticeModel extends \CodeIgniter\Model protected $table='trainer_apprentice'; protected $primaryKey='id'; protected $allowedFields=['fk_trainer','fk_apprentice']; - private User_model $userModel; /** - * @return null + * @return TrainerApprenticeModel */ public static function getInstance(){ if (TrainerApprenticeModel::$trainerApprenticeModel==null) TrainerApprenticeModel::$trainerApprenticeModel=new TrainerApprenticeModel(); return TrainerApprenticeModel::$trainerApprenticeModel; } - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); - } - public function getTrainer($trainerApprentice){ - if ($this->userModel==null) - $this->userModel=new User_model(); - return $this->userModel->find($trainerApprentice['fk_trainer']); + + /** + * @param $trainerApprentice + * @return array + */ + public static function getTrainer($trainerApprentice){ + return User_model::getInstance()->find($trainerApprentice['fk_trainer']); } - public Function getApprentice($trainerApprentice){ - if ($this->userModel==null) - $this->userModel=new User_model(); - return $this->userModel->find($trainerApprentice['fk_apprentice']); + + /** + * @param $trainerApprentice + * @return array + */ + public static function getApprentice($trainerApprentice){ + return User_model::getInstance()->find($trainerApprentice['fk_apprentice']); } } \ No newline at end of file diff --git a/orif/plafor/Models/userCourseModel.php b/orif/plafor/Models/userCourseModel.php index 6476434a..bd74fc27 100644 --- a/orif/plafor/Models/userCourseModel.php +++ b/orif/plafor/Models/userCourseModel.php @@ -14,9 +14,6 @@ class UserCourseModel extends \CodeIgniter\Model protected $table='user_course'; protected $primaryKey='id'; protected $allowedFields=['fk_user','fk_course_plan','fk_status','date_begin','date_end']; - private User_model $userModel; - private CoursePlanModel $coursePlanModel; - private AcquisitionStatusModel $acquisitionStatusModel; /** * @return UserCourseModel @@ -26,21 +23,39 @@ public static function getInstance(){ UserCourseModel::$userCourseModel=new UserCourseModel(); return UserCourseModel::$userCourseModel; } - public function getUser($userCourse){ - if ($this->userModel==null) - $this->userModel=new User_model(); - return $this->userModel->find($userCourse['fk_user']); + + /** + * @param $fkUserId + * @return array + */ + public static function getUser($fkUserId){ + return User_model::getInstance()->find($fkUserId); + } + + /** + * @param $fkCoursePlanId + * @return array + */ + public static function getCoursePlan($fkCoursePlanId){ + return CoursePlanModel::getInstance()->find($fkCoursePlanId); } - public function getCoursePlan($userCourse){ - if ($this->coursePlanModel==null) - $this->coursePlanModel=new CoursePlanModel(); - return $this->coursePlanModel->find($userCourse['fk_course_plan']); + + /** + * @param $fkUserCourseStatus + * @return array + */ + public static function getUserCourseStatus($fkUserCourseStatus){ + return UserCourseStatusModel::getInstance()->find($fkUserCourseStatus); } - public function getStatut($userCourse){ - if ($this->acquisitionStatusModel==null) - $this->acquisitionStatusModel=new AcquisitionStatusModel(); - return $this->acquisitionStatusModel->find($userCourse['fk_status']); + + /** + * @param $userCourseId + * @return array + */ + public static function getAcquisitionStatus($userCourseId){ + return AcquisitionStatusModel::getInstance()->where('fk_user_course',$userCourseId)->findAll(); } + } \ No newline at end of file diff --git a/orif/plafor/Models/userCourseStatusModel.php b/orif/plafor/Models/userCourseStatusModel.php index dcbb2eef..28e0d72f 100644 --- a/orif/plafor/Models/userCourseStatusModel.php +++ b/orif/plafor/Models/userCourseStatusModel.php @@ -19,4 +19,12 @@ public static function getInstance(){ UserCourseStatusModel::$userCourseStatusModel=new UserCourseStatusModel(); return UserCourseStatusModel::$userCourseStatusModel; } + + /** + * @param $userCourseStatusId + * @return array + */ + public static function getUserCourses($userCourseStatusId){ + return UserCourseModel::getInstance()->where('fk_status',$userCourseStatusId)->findAll(); + } } \ No newline at end of file diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index ebf705f6..d5d4c64e 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -11,18 +11,17 @@ use CodeIgniter\Validation\ValidationInterface; class User_model extends \CodeIgniter\Model{ + private static $userModel; protected $table='user'; protected $primaryKey='id'; protected $allowedFields=['archive','date_creation','email','username','password','fk_user_type']; protected $useSoftDeletes=true; protected $deletedField="archive"; - private $user_type_model=null; - - public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) - { - parent::__construct($db, $validation); - $this->user_type_model=new User_type_model(); + public static function getInstance(){ + if (User_model::$userModel==null) + User_model::$userModel=new User_model(); + return User_model::$userModel; } /** @@ -32,8 +31,8 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface * @param string $password * @return boolean true on success false otherwise */ - public function check_password_name($username, $password){ - $user=$this->where("username",$username)->first(); + public static function check_password_name($username, $password){ + $user=User_model::getInstance()->where("username",$username)->first(); //If a user is found we can verify his password because if his archive is not empty, he is not in the array if (!is_null($user)){ return password_verify($password,$user['password']); @@ -51,11 +50,11 @@ public function check_password_name($username, $password){ * @param string $password * @return bool true on success false otherwise */ - public function check_password_email($email,$password){ + public static function check_password_email($email,$password){ if (!filter_var($email,FILTER_VALIDATE_EMAIL)){ return false; } - $user = $this->where('email',$email)->first(); + $user = User_model::getInstance()->where('email',$email)->first(); if (!is_null($user)){ return password_verify($password,$user['password']); } @@ -66,16 +65,11 @@ public function check_password_email($email,$password){ /** * return the access level of an user - * @param $user + * @param $fkUserTypeId * @return mixed */ - public function get_access_level($user){ - if ($this->user_type_model==null){ - $this->user_type_model=new User_type_model(); - - } - $user->access_level=$this->user_type_model->getWhere(['id'=>$user->fk_user_type])->getRow()->access_level; - return $user->access_level; + public static function get_access_level($fkUserTypeId){ + return User_type_model::getInstance()->getWhere(['id'=>$fkUserTypeId])->getRow()->access_level; } } \ No newline at end of file diff --git a/orif/user/Models/User_type_model.php b/orif/user/Models/User_type_model.php index 7598b76e..5ab10e64 100644 --- a/orif/user/Models/User_type_model.php +++ b/orif/user/Models/User_type_model.php @@ -12,7 +12,14 @@ class User_type_model extends \CodeIgniter\Model { + private static $userTypeModel; protected $table='user_type'; protected $primaryKey='id'; + public static function getInstance(){ + if (User_type_model::$userTypeModel==null) + User_type_model::$userTypeModel=new User_type_model(); + return User_type_model::$userTypeModel; + } + } \ No newline at end of file From f1ea86bb062d70f3580074f335334e2742c86620 Mon Sep 17 00:00:00 2001 From: HeMa Date: Mon, 10 May 2021 13:43:56 +0200 Subject: [PATCH 015/172] updated Models and view and finalized delete_course_plan --- orif/common/Language/fr/common_lang.php | 1 + orif/plafor/Controllers/Admin.php | 53 +++++++++++------------- orif/plafor/Views/course_plan/delete.php | 26 ++++++++---- orif/user/Controllers/Admin.php | 27 ++++++------ orif/user/Controllers/Auth.php | 15 +++---- orif/user/Models/User_model.php | 3 ++ 6 files changed, 65 insertions(+), 60 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 40513b16..3cadfc29 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -28,6 +28,7 @@ 'btn_add_m' => 'Nouveau', 'btn_details' => 'Détails', 'btn_update' => 'Modifier', + 'btn_disable' => 'Désactiver', // Other common texts 'yes' => 'Oui', diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 75ba95c8..263b4c12 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -116,19 +116,13 @@ public function delete_course_plan($course_plan_id, $action = 0) { $competenceDomainIds=[]; $objectiveIds=[]; - $coursePlanModel=new CoursePlanModel(); - $competenceDomainModel=new CompetenceDomainModel(); - $operationalCompetencesModel=new OperationalCompetenceModel(); - $objectiveModel=new ObjectiveModel(); - $course_plan = $coursePlanModel->find($course_plan_id); + $course_plan = CoursePlanModel::getInstance()->find($course_plan_id); if (is_null($course_plan)) { return redirect()->to('/plafor/admin/list_course_plan'); } switch($action) { case 0: // Display confirmation - $coursePlanModel->getUserCourses($course_plan); - exit; $output = array( 'course_plan' => $course_plan, 'title' => lang('title_course_plan_delete') @@ -138,31 +132,34 @@ public function delete_course_plan($course_plan_id, $action = 0) case 1: // Deactivate (soft delete) course plan //get linked competence domain - $competence_domains=$competenceDomainModel->getWhere(['fk_course_plan'=>$course_plan['id']])->getResultArray(); - foreach ($competence_domains as $competence_domain){ - $competenceDomainIds[] = $competence_domain['id']; - } - //no need - //$competenceDomainId = implode(',',$competenceDomainIds); - - //get operational competences - //No need - $operational_competences = $operationalCompetencesModel->whereIn('fk_competence_domain',$competenceDomainIds)->findAll(); - $objectives=null; - //get Objectives - foreach ($operational_competences as $operational_competence){ - //get objectives linked to operational competence - $objectives=$objectiveModel->getWhere(['fk_operational_competence'=>$operational_competence['id']])->getResultArray(); - + $competenceDomains=CoursePlanModel::getCompetenceDomains($course_plan['id']); + $operationalCompetences=[]; + $objectives=[]; + + foreach ($competenceDomains as $competence_domain){ + //get all operationnal competences in an array($operational_competences) which format is [[:competencedomainid]=>[operationalCompetence id, name, etc...],[:competencedomainid]=>[operationalCompetence id, name, etc...] + $operationalCompetences[$competence_domain['id']]=CompetenceDomainModel::getOperationalCompetences($competence_domain['id']); + //get all objectives assiociated with an operational_competence in an array($objectives) which format is [[operationalcompetenceid]=>[objectives id,fkop, symbol, etc...] + foreach ($operationalCompetences as list($operationalCompetence)){ + $objectives[$operationalCompetence['id']]=OperationalCompetenceModel::getObjectives($operationalCompetence['id']); + } } - foreach ($objectives as $objective){ + //get all ids + $competenceDomainIds=array_column($competenceDomains,'id'); + foreach ($objectives as list($objective)) { $objectiveIds[] = $objective['id']; + } - //no need - //$objectiveId = implode(',',$objectiveIds); + + var_dump($competenceDomainIds); var_dump($objectiveIds); - $objectiveModel->whereIn('id',$objectiveIds)->delete(); - $operationalCompetencesModel->whereIn('fk_competence_domain',$competenceDomainIds)->delete(); + + + + exit(); + + ObjectiveModel::getInstance()->whereIn('id',$objectiveIds)->delete(); + OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->delete(); $competenceDomainModel->where('fk_course_plan',$course_plan_id); $coursePlanModel->delete($course_plan_id, FALSE); return redirect()->to('/plafor/admin/list_course_plan'); diff --git a/orif/plafor/Views/course_plan/delete.php b/orif/plafor/Views/course_plan/delete.php index 26eebad2..905891b0 100644 --- a/orif/plafor/Views/course_plan/delete.php +++ b/orif/plafor/Views/course_plan/delete.php @@ -1,22 +1,32 @@
-

username.'"' ?>

-

official_name.'"' ?>

-

name.'"' ?>

-

-
+

+

+

+

+
diff --git a/orif/user/Controllers/Admin.php b/orif/user/Controllers/Admin.php index ed059e6d..64e50563 100644 --- a/orif/user/Controllers/Admin.php +++ b/orif/user/Controllers/Admin.php @@ -32,9 +32,6 @@ public function initController(RequestInterface $request, ResponseInterface $res // Load required services $this->validation = \Config\Services::validation(); - // Load required models - $this->user_model = new User_model(); - $this->user_type_model = new User_type_model(); //get db instance $this->db = \CodeIgniter\Database\Config::connect(); @@ -49,9 +46,9 @@ public function initController(RequestInterface $request, ResponseInterface $res public function list_user($with_deleted = FALSE) { if ($with_deleted) { - $users = $this->user_model->withDeleted()->findAll(); + $users = User_model::getInstance()->withDeleted()->findAll(); } else { - $users = $this->user_model->findAll(); + $users = User_model::getInstance()->findAll(); } //usertiarray is an array contained all usertype name and id @@ -118,11 +115,11 @@ public function save_user($user_id = 0) 'email' => $this->request->getPost('user_email') ?: NULL ); if ($user_id > 0) { - $this->user_model->update($user_id, $user); + User_model::getInstance()->update($user_id, $user); } else { $password = $this->request->getPost('user_password'); $user['password'] = password_hash($password, config('\User\Config\UserConfig')->password_hash_algorithm); - $this->user_model->insert($user); + User_model::getInstance()->insert($user); } return redirect()->to('/user/admin/list_user'); } @@ -136,7 +133,7 @@ public function save_user($user_id = 0) } $output = array( 'title' => lang('user_lang.title_user_'.((bool)$user_id ? 'update' : 'new')), - 'user' => $this->user_model->withDeleted()->find($user_id), + 'user' => User_model::getInstance()->withDeleted()->find($user_id), 'user_types' => $usertypes, 'user_name' => $oldName, 'user_usertype' => $oldUsertype @@ -157,7 +154,7 @@ public function save_user($user_id = 0) */ public function delete_user($user_id, $action = 0) { - $user = $this->user_model->withDeleted()->find($user_id); + $user = User_model::getInstance()->withDeleted()->find($user_id); if (is_null($user)) { return redirect()->to('/user/admin/list_user'); } @@ -172,12 +169,12 @@ public function delete_user($user_id, $action = 0) break; case 1: // Deactivate (soft delete) user if ($_SESSION['user_id'] != $user['id']) { - $this->user_model->delete($user_id, FALSE); + User_model::getInstance()->delete($user_id, FALSE); } return redirect()->to('/user/admin/list_user'); case 2: // Delete user if ($_SESSION['user_id'] != $user['id']) { - $this->user_model->delete($user_id, TRUE); + User_model::getInstance()->delete($user_id, TRUE); } return redirect()->to('/user/admin/list_user'); default: // Do nothing @@ -193,11 +190,11 @@ public function delete_user($user_id, $action = 0) */ public function reactivate_user($user_id) { - $user = $this->user_model->withDeleted()->find($user_id); + $user = User_model::getInstance()->withDeleted()->find($user_id); if (is_null($user)) { return redirect()->to('/user/admin/list_user'); } else { - $this->user_model->withDeleted()->update($user_id,['archive'=>null]); + User_model::getInstance()->withDeleted()->update($user_id,['archive'=>null]); return redirect()->to('/user/admin/save_user/'.$user_id); } } @@ -230,12 +227,12 @@ public function password_change_user($user_id) if ($this->validation->withRequest($this->request)->run()) { $password = $this->request->getPost('user_password_new'); $password = password_hash($password, config('\User\Config\UserConfig')->password_hash_algorithm); - $this->user_model->update($user_id, ['password' => $password]); + User_model::getInstance()->update($user_id, ['password' => $password]); return redirect()->to('/user/admin/list_user'); } } - $user = $this->user_model->withDeleted()->find($user_id); + $user = User_model::getInstance()->withDeleted()->find($user_id); if (is_null($user)) return redirect()->to('/user/admin/list_user'); $output = array( diff --git a/orif/user/Controllers/Auth.php b/orif/user/Controllers/Auth.php index acb809dd..2ca582a3 100644 --- a/orif/user/Controllers/Auth.php +++ b/orif/user/Controllers/Auth.php @@ -31,8 +31,6 @@ public function initController(RequestInterface $request, ResponseInterface $res // Load required services $this->validation = \Config\Services::validation(); - // Load required models - $this->user_model = new User_model(); } /** @@ -80,22 +78,22 @@ public function login() if ($this->validation->withRequest($this->request)->run() == true) { $input = $this->request->getVar('username'); $password = $this->request->getvar('password'); - $ismail = $this->user_model->check_password_email($input, $password); - if ($ismail || $this->user_model->check_password_name($input, $password)) { + $ismail = User_model::check_password_email($input, $password); + if ($ismail || User_model::check_password_name($input, $password)) { // Login success $user = NULL; // User is either logging in through an email or an username // Even if an username is entered like an email, we're not grabbing it if ($ismail) { - $user = $this->user_model->getWhere(['email'=>$input])->getRow(); + $user = User_model::getInstance()->getWhere(['email'=>$input])->getRow(); } else { - $user = $this->user_model->getWhere(['username'=>$input])->getRow(); + $user = User_model::getInstance()->getWhere(['username'=>$input])->getRow(); } // Set session variables $_SESSION['user_id'] = (int)$user->id; $_SESSION['username'] = (string)$user->username; - $_SESSION['user_access'] = (int)$this->user_model->get_access_level($user); + $_SESSION['user_access'] = (int)User_model::get_access_level($user->id); $_SESSION['logged_in'] = (bool)true; // Send the user to the redirection URL @@ -177,8 +175,7 @@ public function change_password() $new_password = $this->request->getVar('new_password'); $confirm_password = $this->request->getVar('confirm_password'); - $this->user_model=new \User\Models\User_model(); - $this->user_model->update($_SESSION['user_id'], + User_model::getInstance()->update($_SESSION['user_id'], array("password" => password_hash($new_password, config("\User\Config\UserConfig")->password_hash_algorithm))); // Send the user back to the site's root diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index d5d4c64e..a5df9bc3 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -18,6 +18,9 @@ class User_model extends \CodeIgniter\Model{ protected $useSoftDeletes=true; protected $deletedField="archive"; + /** + * @return User_model + */ public static function getInstance(){ if (User_model::$userModel==null) User_model::$userModel=new User_model(); From 4adb41933723b1cc5e73f263a65059e58afae097 Mon Sep 17 00:00:00 2001 From: HeMa Date: Mon, 10 May 2021 13:44:30 +0200 Subject: [PATCH 016/172] updated Models and view and finalized delete_course_plan --- orif/plafor/Controllers/Admin.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 263b4c12..4643fa0d 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -151,9 +151,6 @@ public function delete_course_plan($course_plan_id, $action = 0) } - var_dump($competenceDomainIds); - var_dump($objectiveIds); - exit(); From aa11c037e53767ece892dad4081dc587c6f45593 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:42:22 +0200 Subject: [PATCH 017/172] updated admin in plafor module and added list_competence_domain and redirect to previous url on cancel --- orif/plafor/Controllers/Admin.php | 33 ++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 4643fa0d..adc985ee 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -153,12 +153,11 @@ public function delete_course_plan($course_plan_id, $action = 0) - exit(); - ObjectiveModel::getInstance()->whereIn('id',$objectiveIds)->delete(); - OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->delete(); - $competenceDomainModel->where('fk_course_plan',$course_plan_id); - $coursePlanModel->delete($course_plan_id, FALSE); + count($objectiveIds)>0?ObjectiveModel::getInstance()->whereIn('id',$objectiveIds)->delete():null; + count($competenceDomainIds)>0?OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->delete():null; + CompetenceDomainModel::getInstance()->where('fk_course_plan',$course_plan_id); + CoursePlanModel::getInstance()->delete($course_plan_id, FALSE); return redirect()->to('/plafor/admin/list_course_plan'); break; default: @@ -166,5 +165,29 @@ public function delete_course_plan($course_plan_id, $action = 0) return redirect()->to('/plafor/admin/list_course_plan'); } } + /** + * Displays the list of course plans + * + * @return void + */ + public function list_competence_domain($id_course_plan = null) + { + if($id_course_plan == null){ + $competence_domains = CompetenceDomainModel::getInstance()->findAll(); + }else{ + $course_plan = CoursePlanModel::getInstance()->find($id_course_plan); + $competence_domains = CoursePlanModel::getCompetenceDomains($course_plan['id']); + } + + $output = array( + 'competence_domains' => $competence_domains + ); + + if(is_numeric($id_course_plan)){ + $output[] = ['course_plan' => $course_plan]; + } + + $this->display_view('\Plafor\competence_domain\list', $output); + } } \ No newline at end of file From 2bbba23ae8673591f038323fd70cd8fba04e0492 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:43:43 +0200 Subject: [PATCH 018/172] added apprentice controller --- orif/plafor/Controllers/Apprentice.php | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 orif/plafor/Controllers/Apprentice.php diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php new file mode 100644 index 00000000..c20a68dd --- /dev/null +++ b/orif/plafor/Controllers/Apprentice.php @@ -0,0 +1,37 @@ +access_level=config('\User\Config\UserConfig')->access_level_apprentice; + parent::initController($request, $response, $logger); + } + /** + * Show details of the selected course plan + * + * @param int (SQL PRIMARY KEY) $course_plan_id + * + */ + public function view_course_plan($course_plan_id = null) + { + $course_plan = CoursePlanModel::getInstance()->find($course_plan_id); + $competence_domains=CoursePlanModel::getCompetenceDomains($course_plan_id); + if($course_plan == null){ + return redirect()->to(base_url('plafor/apprentice/list_course_plan')); + } + + $output = array( + 'course_plan' => $course_plan, + 'competence_domains'=>$competence_domains + ); + + $this->display_view('\Plafor\course_plan\view',$output); + } +} \ No newline at end of file From 93470dcb48c47a4d1e6c8bb6094feb4981b47f3f Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:44:15 +0200 Subject: [PATCH 019/172] updated view of plafor --- .../plafor/Views/competence_domain/delete.php | 23 ++++++ orif/plafor/Views/competence_domain/list.php | 76 +++++++++++++++++++ orif/plafor/Views/course_plan/delete.php | 9 ++- orif/plafor/Views/course_plan/list.php | 2 +- 4 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 orif/plafor/Views/competence_domain/delete.php create mode 100644 orif/plafor/Views/competence_domain/list.php diff --git a/orif/plafor/Views/competence_domain/delete.php b/orif/plafor/Views/competence_domain/delete.php new file mode 100644 index 00000000..7e1eea2a --- /dev/null +++ b/orif/plafor/Views/competence_domain/delete.php @@ -0,0 +1,23 @@ + +
+
+
+
+
+

name.'"' ?>

+

+
+
+ +
+
+
+
diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php new file mode 100644 index 00000000..38f31649 --- /dev/null +++ b/orif/plafor/Views/competence_domain/list.php @@ -0,0 +1,76 @@ + +
+
+ +
+
+
+

+
+
+
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
×
+
+
+ + diff --git a/orif/plafor/Views/course_plan/delete.php b/orif/plafor/Views/course_plan/delete.php index 905891b0..a8aad6f2 100644 --- a/orif/plafor/Views/course_plan/delete.php +++ b/orif/plafor/Views/course_plan/delete.php @@ -2,6 +2,8 @@ $courses=\Plafor\Models\CoursePlanModel::getUserCourses($course_plan['id']); $apprentices=[]; $userCourseStatus=[]; +$session=session(); + foreach ($courses as $course){ $apprentices[]=\Plafor\Models\UserCourseModel::getUser($course['fk_user']); $userCourseStatus[]=\Plafor\Models\UserCourseModel::getUserCourseStatus($course['fk_status']); @@ -15,14 +17,19 @@
+ 0){?>

+ +

+ 0){?>

+

- + diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index 03f6c6a2..c3c154ba 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -53,7 +53,7 @@ - + × From ca884912ce21cb30d7dfc6edba5913fece2f9703 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:44:46 +0200 Subject: [PATCH 020/172] added route for apprentice controller --- orif/plafor/Config/Routes.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/orif/plafor/Config/Routes.php b/orif/plafor/Config/Routes.php index 4cd46fe0..9e20f7dc 100644 --- a/orif/plafor/Config/Routes.php +++ b/orif/plafor/Config/Routes.php @@ -8,4 +8,6 @@ */ $routes->add('plafor/admin/(:any)','\Plafor\Controllers\Admin::$1'); +$routes->add('plafor/apprentice/(:any)','\Plafor\Controllers\Apprentice::$1'); + ?> \ No newline at end of file From 67d8c044eb007972417179c664818e726243f8c9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:45:15 +0200 Subject: [PATCH 021/172] added view to competence_domain --- orif/plafor/Views/competence_domain/save.php | 67 ++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 orif/plafor/Views/competence_domain/save.php diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php new file mode 100644 index 00000000..2cdef01f --- /dev/null +++ b/orif/plafor/Views/competence_domain/save.php @@ -0,0 +1,67 @@ + + 'symbol', + 'value' => $competence_domain_symbol ?? $competence_domain->symbol ?? '', + 'max' => SYMBOL_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'competence_domain_symbol' + ); + + $data_name = array( + 'name' => 'name', + 'value' => $competence_domain_name ?? $competence_domain->name ?? '', + 'max' => COMPETENCE_DOMAIN_NAME_MAX_LENGTH, + 'class' => 'form-control', 'id' => 'competence_domain_name' + ); +?> +
+ +
+
+

+
+
+ + + 'competence_domain_form', + 'name' => 'competence_domain_form' + ); + echo form_open('admin/save_competence_domain', $attributes, [ + 'id' => $competence_domain->id ?? 0 + ]); + ?> + + + ', '
'); ?> + + +
+
+ 'form-label']); ?> +
+ fk_course_plan ?? '','id="course_plan" class="form-control"')?> +
+
+ 'form-label']); ?> + + 'form-label']); ?> + +
+
+ + +
+
+ + 'btn btn-primary']); ?> +
+
+ +
From 92ddd1db5797b4b14f562de49cab4ee9ccb844b1 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:45:49 +0200 Subject: [PATCH 022/172] updated config to include required level of application --- orif/user/Config/UserConfig.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/orif/user/Config/UserConfig.php b/orif/user/Config/UserConfig.php index 148bbb5c..9069a5f2 100644 --- a/orif/user/Config/UserConfig.php +++ b/orif/user/Config/UserConfig.php @@ -16,7 +16,9 @@ class UserConfig extends BaseConfig public $access_lvl_guest = 1; public $access_lvl_registered = 2; public $access_lvl_admin = 4; - + public $access_level_apprentice = 1; + public $access_lvl_trainer = 2; + /* Validation rules */ public $username_min_length = 3; public $username_max_length = 45; From 40aa19015bc192d38a39a507998c23a1dc7b92cc Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 11 May 2021 09:46:26 +0200 Subject: [PATCH 023/172] updated views --- orif/plafor/Views/competence_domain/view.php | 50 ++++++++++++++++++++ orif/plafor/Views/course_plan/view.php | 41 ++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 orif/plafor/Views/competence_domain/view.php create mode 100644 orif/plafor/Views/course_plan/view.php diff --git a/orif/plafor/Views/competence_domain/view.php b/orif/plafor/Views/competence_domain/view.php new file mode 100644 index 00000000..807bd6c7 --- /dev/null +++ b/orif/plafor/Views/competence_domain/view.php @@ -0,0 +1,50 @@ +
+
+
+

lang->line('details_course_plan')?>

+
+
+

lang->line('field_course_plan_formation_number')?>

+ formation_number?> +
+
+

lang->line('field_course_plan_official_name')?>

+ official_name?> +
+
+
+
+

lang->line('details_competence_domain')?>

+
+
+

lang->line('field_competence_domain_symbol')?>

+

symbol?>

+
+
+

lang->line('field_competence_domain_name')?>

+

name?>

+
+
+
+
+

lang->line('field_linked_operational_competences')?>

+
+
+ + + + + + + + operational_competences as $operational_competence){ + ?> + + + +
lang->line('field_operational_competences_symbols')?>lang->line('field_operational_competences_names')?>
symbol?>name?>
+
+
+
\ No newline at end of file diff --git a/orif/plafor/Views/course_plan/view.php b/orif/plafor/Views/course_plan/view.php new file mode 100644 index 00000000..ece7524d --- /dev/null +++ b/orif/plafor/Views/course_plan/view.php @@ -0,0 +1,41 @@ +
+
+
+

+
+
+

+

+
+
+

+

+
+
+

+

+
+
+
+
+

+
+
+ + + + + + + + + + + +
+
+
+
\ No newline at end of file From 793c0ed0a34962aba3ab6a39bf185fb3edac3b9f Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 11 May 2021 13:27:39 +0200 Subject: [PATCH 024/172] apprentice list & admin menu template --- orif/plafor/Controllers/Admin.php | 56 ++++++++++++++++++- orif/plafor/Views/apprentice/list.php | 53 ++++++++++++++++++ orif/plafor/Views/competence_domain/list.php | 18 ------ orif/plafor/Views/course_plan/list.php | 19 ------- orif/plafor/Views/templates/template_Menu.php | 20 +++++++ 5 files changed, 127 insertions(+), 39 deletions(-) create mode 100644 orif/plafor/Views/apprentice/list.php create mode 100644 orif/plafor/Views/templates/template_Menu.php diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index adc985ee..405c22c7 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -9,6 +9,8 @@ use Plafor\Models\ObjectiveModel; use Plafor\Models\OperationalCompetenceModel; use Plafor\Models\UserCourseModel; +use User\Models\User_type_model; +use User\Models\User_model; class Admin extends \App\Controllers\BaseController { @@ -52,7 +54,7 @@ public function list_course_plan($id_apprentice = null) $output[] = ['course_plans' => $course_plans]; } - $this->display_view('Plafor\course_plan\list', $output); + $this->display_view(['Plafor\templates/template_Menu','Plafor\course_plan\list'], $output); } /** * Adds or modify a course plan @@ -187,7 +189,57 @@ public function list_competence_domain($id_course_plan = null) $output[] = ['course_plan' => $course_plan]; } - $this->display_view('\Plafor\competence_domain\list', $output); + $this->display_view(['Plafor\templates/template_Menu','\Plafor\competence_domain\list'], $output); } + public function list_apprentice() + { + + //if($trainer_id == null){ + $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); + $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); + $coursesList = CoursePlanModel::getInstance()->findall(); + $courses = UserCourseModel::getInstance()->findall(); + //}else{ + // $apprentices = $this->user_model->get_many_by(array('id' => $trainer_id)); + + //} + + $output = array( + 'apprentices' => $apprentices, + 'coursesList' => $coursesList, + 'courses' => $courses + ); + + $this->display_view(['Plafor\templates/template_Menu','Plafor\apprentice/list'], $output); + } + + public function view_apprentice($apprentice_id = null) + { + $apprentice = $this->user_model->get($apprentice_id); + + if($apprentice->fk_user_type != $this->user_type_model->get_by('name',$this->lang->line('title_apprentice'))->id){ + redirect(base_url('apprentice/list_apprentice')); + exit(); + } + + $user_courses = $this->user_course_model->get_many_by('fk_user',$apprentice_id); + $user_course_status = $this->user_course_status_model->get_all(); + $course_plans = $this->course_plan_model->get_all(); + + $trainers = $this->user_model->get_many_by('fk_user_type',$this->user_type_model->get_by('name',$this->lang->line('title_trainer'))->id); + $links = $this->trainer_apprentice_model->get_many_by('fk_apprentice',$apprentice_id); + + $output = array( + 'apprentice' => $apprentice, + 'trainers' => $trainers, + 'links' => $links, + 'user_courses' => $user_courses, + 'user_course_status' => $user_course_status, + 'course_plans' => $course_plans + ); + + $this->display_view('apprentice/view',$output); + } + } \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php new file mode 100644 index 00000000..e9668746 --- /dev/null +++ b/orif/plafor/Views/apprentice/list.php @@ -0,0 +1,53 @@ + +
- +
+
+

+
+
+
+ + + + + + + + + + + + + + + +
+
+
+ + \ No newline at end of file diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index 38f31649..a1e1d08e 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -8,24 +8,6 @@ */ ?>
-
-
diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index c3c154ba..cb3feb90 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -8,25 +8,6 @@ */ ?>
-
- -

diff --git a/orif/plafor/Views/templates/template_Menu.php b/orif/plafor/Views/templates/template_Menu.php new file mode 100644 index 00000000..443d7cde --- /dev/null +++ b/orif/plafor/Views/templates/template_Menu.php @@ -0,0 +1,20 @@ +
+
+ +
\ No newline at end of file From 79f04e0b8eeb0b2d255bc7193b4d227f7f4f9bec Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 11 May 2021 13:34:49 +0200 Subject: [PATCH 025/172] Plafor_DB_Plus_Data --- app/Database/plafor.sql | 1274 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1274 insertions(+) create mode 100644 app/Database/plafor.sql diff --git a/app/Database/plafor.sql b/app/Database/plafor.sql new file mode 100644 index 00000000..e13e4d7a --- /dev/null +++ b/app/Database/plafor.sql @@ -0,0 +1,1274 @@ +-- phpMyAdmin SQL Dump +-- version 5.0.4 +-- https://www.phpmyadmin.net/ +-- +-- Hôte : 127.0.0.1 +-- Généré le : mar. 11 mai 2021 à 13:34 +-- Version du serveur : 10.4.17-MariaDB +-- Version de PHP : 8.0.2 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Base de données : `plafor` +-- + +-- -------------------------------------------------------- + +-- +-- Structure de la table `acquisition_level` +-- + +CREATE TABLE `acquisition_level` ( + `id` int(11) NOT NULL, + `name` varchar(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `acquisition_level` +-- + +INSERT INTO `acquisition_level` (`id`, `name`) VALUES +(1, 'Non expliqué'), +(2, 'Expliqué'), +(3, 'Exercé'), +(4, 'Autonome'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `acquisition_status` +-- + +CREATE TABLE `acquisition_status` ( + `id` int(11) NOT NULL, + `fk_objective` int(11) NOT NULL, + `fk_user_course` int(11) NOT NULL, + `fk_acquisition_level` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `acquisition_status` +-- + +INSERT INTO `acquisition_status` (`id`, `fk_objective`, `fk_user_course`, `fk_acquisition_level`) VALUES +(1, 1, 1, 1), +(2, 2, 1, 1), +(3, 3, 1, 1), +(4, 4, 1, 1), +(5, 5, 1, 1), +(6, 6, 1, 1), +(7, 7, 1, 1), +(8, 8, 1, 1), +(9, 9, 1, 1), +(10, 10, 1, 1), +(11, 11, 1, 1), +(12, 12, 1, 1), +(13, 13, 1, 1), +(14, 14, 1, 1), +(15, 15, 1, 1), +(16, 16, 1, 1), +(17, 17, 1, 1), +(18, 18, 1, 1), +(19, 19, 1, 1), +(20, 20, 1, 1), +(21, 21, 1, 1), +(22, 22, 1, 1), +(23, 23, 1, 1), +(24, 24, 1, 1), +(25, 25, 1, 1), +(26, 26, 1, 1), +(27, 27, 1, 1), +(28, 28, 1, 1), +(29, 29, 1, 1), +(30, 30, 1, 1), +(31, 31, 1, 1), +(32, 32, 1, 1), +(33, 33, 1, 1), +(34, 34, 1, 1), +(35, 35, 1, 1), +(36, 36, 1, 1), +(37, 37, 1, 1), +(38, 38, 1, 1), +(39, 39, 1, 1), +(40, 40, 1, 1), +(41, 41, 1, 1), +(42, 42, 1, 1), +(43, 43, 1, 1), +(44, 44, 1, 1), +(45, 45, 1, 1), +(46, 46, 1, 1), +(47, 47, 1, 1), +(48, 48, 1, 1), +(49, 49, 1, 1), +(50, 50, 1, 1), +(51, 51, 1, 1), +(52, 52, 1, 1), +(53, 53, 1, 1), +(54, 54, 1, 1), +(55, 55, 1, 1), +(56, 56, 1, 1), +(57, 57, 1, 1), +(58, 58, 1, 1), +(59, 59, 1, 1), +(60, 60, 1, 1), +(61, 61, 1, 1), +(62, 62, 1, 1), +(63, 63, 1, 1), +(64, 64, 1, 1), +(65, 65, 1, 1), +(66, 66, 1, 1), +(67, 67, 1, 1), +(68, 68, 1, 1), +(69, 69, 1, 1), +(70, 70, 1, 1), +(71, 71, 1, 1), +(72, 72, 1, 1), +(73, 73, 1, 1), +(74, 177, 2, 1), +(75, 178, 2, 1), +(76, 179, 2, 1), +(77, 180, 2, 1), +(78, 181, 2, 1), +(79, 182, 2, 1), +(80, 183, 2, 1), +(81, 184, 2, 1), +(82, 185, 2, 1), +(83, 186, 2, 1), +(84, 187, 2, 1), +(85, 188, 2, 1), +(86, 189, 2, 1), +(87, 190, 2, 1), +(88, 191, 2, 1), +(89, 192, 2, 1), +(90, 193, 2, 1), +(91, 194, 2, 1), +(92, 195, 2, 1), +(93, 196, 2, 1), +(94, 197, 2, 1), +(95, 198, 2, 1), +(96, 199, 2, 1), +(97, 200, 2, 1), +(98, 201, 2, 1), +(99, 202, 2, 1), +(100, 203, 2, 1), +(101, 204, 2, 1), +(102, 205, 2, 1), +(103, 206, 2, 1), +(104, 207, 2, 1), +(105, 208, 2, 1), +(106, 209, 2, 1), +(107, 210, 2, 1), +(108, 211, 2, 1), +(109, 212, 2, 1), +(110, 213, 2, 1), +(111, 214, 2, 1), +(112, 215, 2, 1), +(113, 216, 2, 1), +(114, 217, 2, 1), +(115, 218, 2, 1), +(116, 219, 2, 1), +(117, 220, 2, 1), +(118, 221, 2, 1), +(119, 222, 2, 1), +(120, 223, 2, 1), +(121, 224, 2, 1), +(122, 225, 2, 1), +(123, 226, 2, 1), +(124, 227, 2, 1), +(125, 228, 2, 1), +(126, 229, 2, 1), +(127, 230, 2, 1), +(128, 231, 2, 1), +(129, 232, 2, 1), +(130, 233, 2, 1), +(131, 234, 2, 1), +(132, 235, 2, 1), +(133, 236, 2, 1), +(134, 237, 2, 1), +(135, 238, 2, 1), +(136, 239, 2, 1), +(137, 240, 2, 1), +(138, 241, 2, 1), +(139, 242, 2, 1), +(140, 243, 2, 1), +(141, 244, 2, 1), +(142, 245, 2, 1), +(143, 246, 2, 1), +(144, 247, 2, 1), +(145, 248, 2, 1), +(146, 249, 2, 1), +(147, 250, 2, 1), +(148, 251, 2, 1), +(149, 252, 2, 1), +(150, 253, 2, 1), +(151, 254, 2, 1), +(152, 255, 2, 1), +(153, 256, 2, 1), +(154, 257, 2, 1), +(155, 258, 2, 1), +(156, 259, 2, 1), +(157, 260, 2, 1), +(158, 261, 2, 1), +(159, 262, 2, 1), +(160, 263, 2, 1), +(161, 264, 2, 1), +(162, 265, 2, 1), +(163, 266, 2, 1), +(164, 267, 3, 1), +(165, 268, 3, 1), +(166, 269, 3, 1), +(167, 270, 3, 1), +(168, 271, 3, 1), +(169, 272, 3, 1), +(170, 273, 3, 1), +(171, 274, 3, 1), +(172, 275, 3, 1), +(173, 276, 3, 1), +(174, 277, 3, 1), +(175, 278, 3, 1), +(176, 279, 3, 1), +(177, 280, 3, 1), +(178, 281, 3, 1), +(179, 282, 3, 1), +(180, 283, 3, 1), +(181, 284, 3, 1), +(182, 285, 3, 1), +(183, 286, 3, 1), +(184, 287, 3, 1), +(185, 288, 3, 1), +(186, 289, 3, 1), +(187, 290, 3, 1), +(188, 291, 3, 1), +(189, 292, 3, 1), +(190, 293, 3, 1), +(191, 294, 3, 1), +(192, 295, 3, 1), +(193, 296, 3, 1), +(194, 297, 3, 1), +(195, 298, 3, 1), +(196, 299, 3, 1), +(197, 300, 3, 1), +(198, 301, 3, 1), +(199, 302, 3, 1), +(200, 303, 3, 1), +(201, 304, 3, 1), +(202, 305, 3, 1), +(203, 306, 3, 1), +(204, 307, 3, 1), +(205, 308, 3, 1), +(206, 309, 3, 1), +(207, 310, 3, 1), +(208, 311, 3, 1), +(209, 312, 3, 1), +(210, 313, 3, 1), +(211, 314, 3, 1), +(212, 315, 3, 1), +(213, 316, 3, 1), +(214, 317, 3, 1), +(215, 318, 3, 1), +(216, 319, 3, 1), +(217, 320, 3, 1), +(218, 321, 3, 1), +(219, 322, 3, 1), +(220, 323, 3, 1), +(221, 324, 3, 1), +(222, 325, 3, 1), +(223, 326, 3, 1), +(224, 327, 3, 1), +(225, 328, 3, 1), +(226, 329, 3, 1), +(227, 330, 3, 1), +(228, 331, 3, 1), +(229, 332, 3, 1), +(230, 1, 4, 1), +(231, 2, 4, 1), +(232, 3, 4, 1), +(233, 4, 4, 1), +(234, 5, 4, 1), +(235, 6, 4, 1), +(236, 7, 4, 1), +(237, 8, 4, 1), +(238, 9, 4, 1), +(239, 10, 4, 1), +(240, 11, 4, 1), +(241, 12, 4, 1), +(242, 13, 4, 1), +(243, 14, 4, 1), +(244, 15, 4, 1), +(245, 16, 4, 1), +(246, 17, 4, 1), +(247, 18, 4, 1), +(248, 19, 4, 1), +(249, 20, 4, 1), +(250, 21, 4, 1), +(251, 22, 4, 1), +(252, 23, 4, 1), +(253, 24, 4, 1), +(254, 25, 4, 1), +(255, 26, 4, 1), +(256, 27, 4, 1), +(257, 28, 4, 1), +(258, 29, 4, 1), +(259, 30, 4, 1), +(260, 31, 4, 1), +(261, 32, 4, 1), +(262, 33, 4, 1), +(263, 34, 4, 1), +(264, 35, 4, 1), +(265, 36, 4, 1), +(266, 37, 4, 1), +(267, 38, 4, 1), +(268, 39, 4, 1), +(269, 40, 4, 1), +(270, 41, 4, 1), +(271, 42, 4, 1), +(272, 43, 4, 1), +(273, 44, 4, 1), +(274, 45, 4, 1), +(275, 46, 4, 1), +(276, 47, 4, 1), +(277, 48, 4, 1), +(278, 49, 4, 1), +(279, 50, 4, 1), +(280, 51, 4, 1), +(281, 52, 4, 1), +(282, 53, 4, 1), +(283, 54, 4, 1), +(284, 55, 4, 1), +(285, 56, 4, 1), +(286, 57, 4, 1), +(287, 58, 4, 1), +(288, 59, 4, 1), +(289, 60, 4, 1), +(290, 61, 4, 1), +(291, 62, 4, 1), +(292, 63, 4, 1), +(293, 64, 4, 1), +(294, 65, 4, 1), +(295, 66, 4, 1), +(296, 67, 4, 1), +(297, 68, 4, 1), +(298, 69, 4, 1), +(299, 70, 4, 1), +(300, 71, 4, 1), +(301, 72, 4, 1), +(302, 73, 4, 1); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `ci_sessions` +-- + +CREATE TABLE `ci_sessions` ( + `id` varchar(128) NOT NULL, + `ip_address` varchar(45) NOT NULL, + `timestamp` int(10) UNSIGNED NOT NULL DEFAULT 0, + `data` blob NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `ci_sessions` +-- + +INSERT INTO `ci_sessions` (`id`, `ip_address`, `timestamp`, `data`) VALUES +('l8c5ovs7kjvvm4kt3ghh37rohlca458b', '127.0.0.1', 1620718518, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731383531383b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), +('02ise7d4bdun88l1so9rmofflt3karvl', '127.0.0.1', 1620718973, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731383937333b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), +('vf3t9qndb30lualt5r6d8bt8fpdok6d5', '127.0.0.1', 1620719541, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731393534313b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), +('rq68tn33eu26q1tjqk2asncsqkhp32er', '127.0.0.1', 1620720138, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732303133383b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a34303a22687474703a2f2f6c6f63616c686f73742f706c61666f7256332f706c61666f722f7075626c69632f223b), +('ec3tlqvumibpnse577ehhi4do0quijp6', '127.0.0.1', 1620720497, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732303439373b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a33313a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('jl0hrld1e9ncaapjm0oi01j63ejab4o7', '127.0.0.1', 1620721413, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732313431333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f757273655f706c616e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('89ogar248bmimsmk8kjlnfm036eo8lgb', '127.0.0.1', 1620721714, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732313731343b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('hmmfr2lbfgludriibrfellltt4ov8bnk', '127.0.0.1', 1620722278, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732323237383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('pqms2amsbtgv27lkucdrnsh2kegv9adn', '127.0.0.1', 1620722832, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732323833323b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('pdaanfinpo087khsgmvm7iia32ukd5q7', '127.0.0.1', 1620723284, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732333238343b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('7pdcvblhssa3npif1rkc5thh30hr0btr', '127.0.0.1', 1620723793, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732333739333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('u2t1tdjeo04ng2hg2muk4ac9llg6gc47', '127.0.0.1', 1620724383, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732343338333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('ru8e1aba7d20jqplr6ld4fu3ghdheok1', '127.0.0.1', 1620724728, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732343732383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('bgms7pj3kakjv4fs2svbk0rnvf55v36g', '127.0.0.1', 1620725108, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732353130383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('7ao9jstrlgbpfij63v6udqtivih43bpt', '127.0.0.1', 1620725507, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732353530373b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('vfgpi9otrn8fi1uo8kp0al3bvkqjuvg2', '127.0.0.1', 1620726360, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732363336303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('5ha39a1toesvlfup0e5ko8cv4hvn9dq0', '127.0.0.1', 1620729378, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732393337383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('tb5go5nr444neneel1ogemdnd8m38g41', '127.0.0.1', 1620729828, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732393832383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('dbtlv5stn9sp5sis3r2qoeohed2d5srg', '127.0.0.1', 1620730178, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303137383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('rihih82if836asho7bc04g1fg90coil7', '127.0.0.1', 1620730479, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303437393b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('13uldti1vleg3cg1dptmtsqpaj5ukc1e', '127.0.0.1', 1620730948, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303934383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('db046jsdu3h94vvfn80ajpuqf27eaopr', '127.0.0.1', 1620732400, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733323430303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), +('1dcv7dc5k8jl2u09igc7tok7dtp5edjg', '127.0.0.1', 1620732490, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733323430303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `comment` +-- + +CREATE TABLE `comment` ( + `id` int(11) NOT NULL, + `fk_trainer` int(11) NOT NULL, + `fk_acquisition_status` int(11) NOT NULL, + `comment` text NOT NULL, + `date_creation` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `competence_domain` +-- + +CREATE TABLE `competence_domain` ( + `id` int(11) NOT NULL, + `fk_course_plan` int(11) NOT NULL, + `symbol` varchar(10) NOT NULL, + `name` varchar(100) NOT NULL, + `archive` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `competence_domain` +-- + +INSERT INTO `competence_domain` (`id`, `fk_course_plan`, `symbol`, `name`, `archive`) VALUES +(1, 1, 'A', 'Saisie, interprétation et mise en œuvre des exigences des applications', NULL), +(2, 1, 'B', 'Développement d’applications en tenant compte des caractéristiques de qualité', NULL), +(3, 1, 'C', 'Création et maintenance de données ainsi que de leurs structures ', NULL), +(4, 1, 'D', ' Mise en service d’appareils TIC', NULL), +(5, 1, 'E', 'Travail sur des projets', NULL), +(6, 2, 'AA', 'Mise en service d’appareils TIC', NULL), +(7, 2, 'B', 'Mise en service de serveurs et réseaux', NULL), +(8, 2, 'C', 'Garantie de l’exploitation TIC ', NULL), +(9, 2, 'D', 'Assistance aux utilisateurs', NULL), +(10, 2, 'E', 'Développement d’applications en tenant compte des caractéristiques de qualité', NULL), +(11, 2, 'F', 'Travaux dans le cadre de projets', NULL), +(12, 3, 'A', 'Mise en service d’appareils TIC', NULL), +(13, 3, 'B', 'Planification, installation, et configuration des réseaux', NULL), +(14, 3, 'C', 'Planification, installation, et configuration des serveurs', NULL), +(15, 3, 'D', 'Maintenance de réseaux et serveurs', NULL), +(16, 3, 'E', 'Travail sur des projets', NULL), +(17, 4, 'A', 'Installation, mise en service et maintenance de terminaux ICT utilisateurs', NULL), +(18, 4, 'B', 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau', NULL), +(19, 4, 'C', 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT', NULL), +(20, 4, 'D', 'Déroulement de travaux de support ICT', NULL), +(21, 1, 'XXX', 'TEST1', NULL); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `course_plan` +-- + +CREATE TABLE `course_plan` ( + `id` int(11) NOT NULL, + `formation_number` varchar(5) NOT NULL, + `official_name` varchar(100) NOT NULL, + `date_begin` date NOT NULL, + `archive` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `course_plan` +-- + +INSERT INTO `course_plan` (`id`, `formation_number`, `official_name`, `date_begin`, `archive`) VALUES +(1, '88601', ' Informaticien/-ne CFC Développement d\'applications', '2014-08-01', NULL), +(2, '88602', ' Informaticien/-ne CFC Informatique d\'entreprise', '2014-08-01', NULL), +(3, '88603', ' Informaticien/-ne CFC Technique des systèmes', '2014-08-01', NULL), +(4, '88605', ' Opératrice en informatique / Opérateur en informatique CFC', '2018-08-01', NULL); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `objective` +-- + +CREATE TABLE `objective` ( + `id` int(11) NOT NULL, + `fk_operational_competence` int(11) NOT NULL, + `symbol` varchar(10) NOT NULL, + `taxonomy` int(5) NOT NULL, + `name` varchar(350) NOT NULL, + `archive` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `objective` +-- + +INSERT INTO `objective` (`id`, `fk_operational_competence`, `symbol`, `taxonomy`, `name`, `archive`) VALUES +(1, 1, 'A.1.1', 4, 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences', NULL), +(2, 1, 'A.1.2', 4, ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)', NULL), +(3, 1, 'A.1.3', 3, 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)', NULL), +(4, 1, 'A.1.4', 4, 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences', NULL), +(5, 1, 'A.1.5', 4, 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite', NULL), +(6, 2, 'A.2.1', 4, 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))', NULL), +(7, 2, 'A.2.2', 4, 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles', NULL), +(8, 2, 'A.2.3', 4, 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation', NULL), +(9, 3, 'A.3.1', 4, 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie', NULL), +(10, 3, 'A.3.2', 3, 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application', NULL), +(11, 3, 'A.3.3', 3, 'Obtenir la confirmation et la distribution du mandat du client', NULL), +(12, 4, 'B.1.1', 5, 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', NULL), +(13, 4, 'B.1.2', 5, 'Appliquer des méthodes pour la détermination de cas de tests', NULL), +(14, 4, 'B.1.3', 3, 'Mettre à disposition, sauvegarder et documenter les données des tests', NULL), +(15, 4, 'B.1.4', 3, 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', NULL), +(16, 4, 'B.1.5', 3, 'Saisir les résultats dans un protocole de tests en vue d’une répétition', NULL), +(17, 4, 'B.1.6', 4, 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', NULL), +(18, 4, 'B.1.7', 4, 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', NULL), +(19, 5, 'B.2.1', 4, 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)', NULL), +(20, 5, 'B.2.2', 4, 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)', NULL), +(21, 5, 'B.2.3', 3, 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité', NULL), +(22, 5, 'B.2.4', 3, 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions', NULL), +(23, 6, 'B.3.1', 4, 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ', NULL), +(24, 6, 'B.3.2', 4, 'Evaluation des modes de déroulement et des applications appropriées', NULL), +(25, 6, 'B.3.3', 4, 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue', NULL), +(26, 6, 'B.3.4', 3, 'Utiliser des standards et processus de développement', NULL), +(27, 6, 'B.3.5', 3, 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns', NULL), +(28, 6, 'B.3.6', 3, 'Respecter la convention des codes', NULL), +(29, 6, 'B.3.7', 3, 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', NULL), +(30, 6, 'B.3.8', 3, 'Tester l’application et tout documenter', NULL), +(31, 7, 'B.4.1', 4, 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', NULL), +(32, 7, 'B.4.2', 3, 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', NULL), +(33, 7, 'B.4.3', 3, 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', NULL), +(34, 7, 'B.4.4', 3, 'Codage GUI convivial, séparation des éléments utilisateurs du code', NULL), +(35, 7, 'B.4.5', 3, 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', NULL), +(36, 7, 'B.4.6', 3, 'Tester l’application de manière exhaustive et tout documenter', NULL), +(37, 8, 'B.5.1', 3, 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout', NULL), +(38, 8, 'B.5.2', 3, 'Respecter les standards', NULL), +(39, 8, 'B.5.3', 4, 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation', NULL), +(40, 8, 'B.5.4', 4, 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité', NULL), +(41, 9, 'B.6.1', 4, 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin', NULL), +(42, 9, 'B.6.2', 3, 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires', NULL), +(43, 9, 'B.6.3', 3, 'Préparer la remise de la production', NULL), +(44, 9, 'B.6.4', 3, 'Organiser en temps voulu l’instruction et l’information des utilisateurs', NULL), +(45, 10, 'C.1.1', 4, 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)', NULL), +(46, 10, 'C.1.2', 4, 'Décrire des entités et déterminer des types de données', NULL), +(47, 10, 'C.1.3', 4, 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)', NULL), +(48, 10, 'C.1.4', 4, 'Formuler des données adéquates de test (tenir compte des conditions limites)', NULL), +(49, 11, 'C.2.1', 4, 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', NULL), +(50, 11, 'C.2.2', 4, 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', NULL), +(51, 11, 'C.2.3', 4, 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', NULL), +(52, 11, 'C.2.4', 3, 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', NULL), +(53, 11, 'C.2.5', 4, 'Planifier et exécuter la migration de données', NULL), +(54, 12, 'C.3.1', 3, 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', NULL), +(55, 12, 'C.3.2', 4, 'Appliquer le concept de transaction et programmer l’accès aux données', NULL), +(56, 12, 'C.3.3', 4, 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', NULL), +(57, 12, 'C.3.4', 4, 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', NULL), +(58, 13, 'D.1.1', 3, 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises', NULL), +(59, 14, 'E.1.1', 4, 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail', NULL), +(60, 14, 'E.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), +(61, 14, 'E.1.3', 3, 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail', NULL), +(62, 14, 'E.1.4', 4, 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter', NULL), +(63, 14, 'E.1.5', 3, 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards', NULL), +(64, 14, 'E.1.6', 4, 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique', NULL), +(65, 14, 'E.1.7', 3, 'Assurer la remontée des données du client, des tests et systèmes, etc', NULL), +(66, 15, 'E.2.1', 3, 'Présenter les méthodes de gestion de projets de l’entreprise', NULL), +(67, 15, 'E.2.2', 4, 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources', NULL), +(68, 15, 'E.2.3', 3, 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter', NULL), +(69, 15, 'E.2.4', 3, 'Présenter et démontrer des solutions', NULL), +(70, 15, 'E.2.5', 4, 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)', NULL), +(71, 15, 'E.2.6', 4, 'Refléter le travail du projet et assurer le transfert des connaissances', NULL), +(72, 16, 'E.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), +(73, 16, 'E.3.2', 5, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), +(74, 17, 'A.1.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', NULL), +(75, 17, 'A.1.2', 4, 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires', NULL), +(76, 17, 'A.1.3', 3, 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), +(77, 17, 'A.1.4', 3, 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', NULL), +(78, 17, 'A.1.5', 3, 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', NULL), +(79, 17, 'A.1.6', 3, 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', NULL), +(80, 17, 'A.1.7', 6, 'Contrôle des fonctions et remise au client (test final et protocole de remise)', NULL), +(81, 18, 'A.2.1', 4, 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)', NULL), +(82, 18, 'A.2.2', 4, 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur', NULL), +(83, 18, 'A.2.3', 3, 'Acquérir le matériel, les logiciels et les licences', NULL), +(84, 18, 'A.2.4', 3, 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données', NULL), +(85, 18, 'A.2.5', 3, 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation', NULL), +(86, 19, 'A.3.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), +(87, 19, 'A.3.2', 4, 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur', NULL), +(88, 19, 'A.3.3', 3, 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)', NULL), +(89, 19, 'A.3.4', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), +(90, 19, 'A.3.5', 3, 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils', NULL), +(91, 20, 'B.1.1', 4, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', NULL), +(92, 20, 'B.1.2', 3, 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), +(93, 20, 'B.1.3', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), +(94, 21, 'B.2.1', 4, 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', NULL), +(95, 21, 'B.2.2', 4, 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', NULL), +(96, 21, 'B.2.3', 3, 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', NULL), +(97, 21, 'B.2.4', 3, 'Visualiser et documenter les réseaux et leur topologie', NULL), +(98, 22, 'B.3.1', 4, 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', NULL), +(99, 22, 'B.3.2', 4, 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie', NULL), +(100, 22, 'B.3.3', 3, 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', NULL), +(101, 22, 'B.3.4', 3, 'Tester, valider et exécuter la restauration des données, documenter le travail', NULL), +(102, 23, 'C.1.1', 3, 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', NULL), +(103, 23, 'C.1.2', 3, 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', NULL), +(104, 23, 'C.1.3', 4, 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', NULL), +(105, 23, 'C.1.4', 3, 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', NULL), +(106, 23, 'C.1.5', 3, 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', NULL), +(107, 24, 'C.2.1', 3, 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', NULL), +(108, 24, 'C.2.2', 3, 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', NULL), +(109, 24, 'C.2.3', 3, 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', NULL), +(110, 24, 'C.2.4', 3, 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', NULL), +(111, 24, 'C.2.5', 3, 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes', NULL), +(112, 25, 'C.3.1', 4, 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), +(113, 25, 'C.3.2', 4, 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', NULL), +(114, 25, 'C.3.3', 3, 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', NULL), +(115, 25, 'C.3.4', 3, 'Tester et documenter la fonctionnalité', NULL), +(116, 26, 'C.4.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), +(117, 26, 'C.4.2', 4, 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', NULL), +(118, 26, 'C.4.3', 3, 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', NULL), +(119, 26, 'C.4.4', 3, 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', NULL), +(120, 27, 'D.1.1', 4, 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils', NULL), +(121, 27, 'D.1.2', 3, 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)', NULL), +(122, 27, 'D.1.3', 3, 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité', NULL), +(123, 27, 'D.1.4', 3, 'Elaborer la documentation pour les utilisateurs', NULL), +(124, 28, 'D.2.1', 3, 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème', NULL), +(125, 28, 'D.2.2', 3, 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques', NULL), +(126, 28, 'D.2.3', 3, 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils', NULL), +(127, 28, 'D.2.4', 3, 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité', NULL), +(128, 29, 'E.1.1', 3, 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', NULL), +(129, 29, 'E.1.2', 4, 'Appliquer des méthodes pour la détermination de cas de tests', NULL), +(130, 29, 'E.1.3', 3, 'Mettre à disposition, sauvegarder et documenter les données des tests', NULL), +(131, 29, 'E.1.4', 3, 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', NULL), +(132, 29, 'E.1.5', 3, 'Saisir les résultats dans un protocole de tests en vue d’une répétition', NULL), +(133, 29, 'E.1.6', 3, 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', NULL), +(134, 29, 'E.1.7', 3, 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', NULL), +(135, 30, 'E.2.1', 4, 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc', NULL), +(136, 30, 'E.2.2', 4, 'Evaluation des modes de déroulement et des applications appropriées', NULL), +(137, 30, 'E.2.3', 4, 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue', NULL), +(138, 30, 'E.2.4', 3, 'Utiliser des standards et processus de développement', NULL), +(139, 30, 'E.2.5', 3, 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns', NULL), +(140, 30, 'E.2.6', 3, 'Respecter la convention des codes', NULL), +(141, 30, 'E.2.7', 3, 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', NULL), +(142, 30, 'E.2.8', 3, 'Tester l’application et tout documenter', NULL), +(143, 31, 'E.3.1', 4, 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', NULL), +(144, 31, 'E.3.2', 3, 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', NULL), +(145, 31, 'E.3.3', 3, 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', NULL), +(146, 31, 'E.3.4', 3, 'Codage GUI convivial, séparation des éléments utilisateurs du code', NULL), +(147, 31, 'E.3.5', 3, 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', NULL), +(148, 31, 'E.3.6', 3, 'Tester l’application de manière exhaustive et tout documenter', NULL), +(149, 32, 'E.4.1', 4, 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', NULL), +(150, 32, 'E.4.2', 3, 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', NULL), +(151, 32, 'E.4.3', 3, 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', NULL), +(152, 32, 'E.4.4', 3, 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', NULL), +(153, 32, 'E.4.5', 4, 'Planifier et exécuter la migration de données', NULL), +(154, 33, 'E.5.1', 3, 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', NULL), +(155, 33, 'E.5.2', 3, 'Appliquer le concept de transaction et programmer l’accès aux données', NULL), +(156, 33, 'E.5.3', 3, 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', NULL), +(157, 33, 'E.5.4', 4, 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', NULL), +(158, 34, 'F.1.1', 3, 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', NULL), +(159, 34, 'F.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), +(160, 34, 'F.1.3', 3, 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', NULL), +(161, 34, 'F.1.4', 3, 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', NULL), +(162, 34, 'F.1.5', 3, 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', NULL), +(163, 34, 'F.1.6', 3, 'Remettre l’installation et faire signer le protocole de remise au client', NULL), +(164, 34, 'F.1.7', 3, 'Instruire les utilisateurs sur les modifications de leurs applications', NULL), +(165, 35, 'F.2.1', 4, 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', NULL), +(166, 35, 'F.2.2', 3, 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', NULL), +(167, 35, 'F.2.3', 3, 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', NULL), +(168, 35, 'F.2.4', 3, 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', NULL), +(169, 35, 'F.2.5', 3, 'Mettre à disposition des collègues ses propres expériences issues du projet', NULL), +(170, 36, 'F.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), +(171, 36, 'F.3.2', 3, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), +(177, 42, 'A.1.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', NULL), +(178, 42, 'A.1.2', 4, 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur', NULL), +(179, 42, 'A.1.3', 3, 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), +(180, 42, 'A.1.4', 3, 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', NULL), +(181, 42, 'A.1.5', 3, 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', NULL), +(182, 42, 'A.1.6', 3, 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', NULL), +(183, 42, 'A.1.7', 3, 'Contrôle des fonctions et remise au client (test final et protocole de remise)', NULL), +(184, 42, 'A.1.8', 4, 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)', NULL), +(185, 43, 'A.2.1', 4, 'Accueillir le mandat du client et planifier la mise en œuvre\r\n(organisation, méthodes de travail, optimisation de l’énergie)', NULL), +(186, 43, 'A.2.2', 4, 'Choisir le matériel et logiciels appropriés en tenant compte\r\ndes directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur', NULL), +(187, 43, 'A.2.3', 4, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', NULL), +(188, 43, 'A.2.4', 3, 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), +(189, 43, 'A.2.5', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), +(190, 44, 'A.3.1', 4, 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', NULL), +(191, 44, 'A.3.2', 4, 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur', NULL), +(192, 44, 'A.3.3', 3, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau', NULL), +(193, 44, 'A.3.4', 3, ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats', NULL), +(194, 45, 'B.1.1', 4, 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', NULL), +(195, 45, 'B.1.2', 4, 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', NULL), +(196, 45, 'B.1.3', 3, 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', NULL), +(197, 45, 'B.1.4', 3, 'Visualiser et documenter les réseaux et leur topologie', NULL), +(198, 46, 'B.2.1', 3, 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement', NULL), +(199, 46, 'B.2.2', 3, 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre', NULL), +(200, 46, 'B.2.3', 3, 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités', NULL), +(201, 46, 'B.2.4', 3, 'Documenter la solution et élaborer le mode d’emploi utilisateurs', NULL), +(202, 47, 'B.3.1', 5, 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)', NULL), +(203, 47, 'B.3.2', 5, 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration', NULL), +(204, 47, 'B.3.3', 3, 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité', NULL), +(205, 48, 'B.4.1', 5, 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement', NULL), +(206, 48, 'B.4.2', 5, 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup', NULL), +(207, 48, 'B.4.3', 3, 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats', NULL), +(208, 49, 'C.1.1', 4, 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), +(209, 49, 'C.1.2', 4, 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', NULL), +(210, 49, 'C.1.3', 3, 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', NULL), +(211, 49, 'C.1.4', 3, 'Tester et documenter la fonctionnalité', NULL), +(212, 50, 'C.2.1', 5, 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', NULL), +(213, 50, 'C.2.2', 4, 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès', NULL), +(214, 50, 'C.2.3', 3, 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus', NULL), +(215, 50, 'C.2.4', 3, 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation', NULL), +(216, 51, 'C.3.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), +(217, 51, 'C.3.2', 4, 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', NULL), +(218, 51, 'C.3.3', 3, 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', NULL), +(219, 51, 'C.3.4', 3, 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', NULL), +(220, 52, 'C.4.1', 5, 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', NULL), +(221, 52, 'C.4.2', 4, 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie', NULL), +(222, 52, 'C.4.3', 3, 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', NULL), +(223, 52, 'C.4.4', 3, 'Tester, valider et exécuter la restauration des données, documenter le travail', NULL), +(224, 53, 'C.5.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), +(225, 53, 'C.5.2', 4, 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès', NULL), +(226, 53, 'C.5.3', 3, 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité', NULL), +(227, 53, 'C.5.4', 3, 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests', NULL), +(228, 54, 'D.1.1', 3, 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', NULL), +(229, 54, 'D.1.2', 3, 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', NULL), +(230, 54, 'D.1.3', 5, 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', NULL), +(231, 54, 'D.1.4', 3, 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', NULL), +(232, 54, 'D.1.5', 3, 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', NULL), +(233, 54, 'D.1.6', 3, 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats', NULL), +(234, 55, 'D.2.1', 3, 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', NULL), +(235, 55, 'D.2.2', 3, 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', NULL), +(236, 55, 'D.2.3', 3, 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', NULL), +(237, 55, 'D.2.4', 3, 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', NULL), +(238, 55, 'D.2.5', 3, 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ', NULL), +(239, 56, 'D.3.1', 3, 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité', NULL), +(240, 56, 'D.3.2', 3, 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils', NULL), +(241, 56, 'D.3.3', 3, 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes', NULL), +(242, 56, 'D.3.4', 3, 'Informer et instruire les utilisateurs', NULL), +(243, 57, 'D.4.1', 3, 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte', NULL), +(244, 57, 'D.4.2', 4, 'Développer une solution et la présenter au supérieur ou à l’utilisateur', NULL), +(245, 57, 'D.4.3', 3, 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)', NULL), +(246, 57, 'D.4.4', 3, 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités', NULL), +(247, 58, 'D.5.1', 4, 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres', NULL), +(248, 58, 'D.5.2', 4, 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution', NULL), +(249, 58, 'D.5.3', 3, 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités', NULL), +(250, 58, 'D.5.4', 3, 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci', NULL), +(251, 58, 'D.5.5', 3, 'Informer les utilisateurs selon les besoins', NULL), +(252, 59, 'E.1.1', 3, 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', NULL), +(253, 59, 'E.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), +(254, 59, 'E.1.3', 3, 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', NULL), +(255, 59, 'E.1.4', 3, 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', NULL), +(256, 59, 'E.1.5', 3, 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', NULL), +(257, 59, 'E.1.6', 3, 'Remettre l’installation et faire signer le protocole de remise au client', NULL), +(258, 59, 'E.1.7', 3, 'Instruire les utilisateurs sur les modifications de leurs applications', NULL), +(259, 59, 'E.1.8', 3, 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable', NULL), +(260, 60, 'E.2.1', 4, 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', NULL), +(261, 60, 'E.2.2', 3, 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', NULL), +(262, 60, 'E.2.3', 3, 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', NULL), +(263, 60, 'E.2.4', 3, 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', NULL), +(264, 60, 'E.2.5', 3, 'Mettre à disposition des collègues ses propres expériences issues du projet', NULL), +(265, 61, 'E.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), +(266, 61, 'E.3.2', 3, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), +(267, 62, 'A.1.1', 2, 'Expliquent les tâches et fonctions des systèmes d’exploitation courants', NULL), +(268, 62, 'A.1.2', 4, 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte', NULL), +(269, 62, 'A.1.3', 3, 'Installent et configurent des appareils périphériques et leurs extensions', NULL), +(270, 62, 'A.1.4', 3, 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement', NULL), +(271, 62, 'A.1.5', 3, 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits', NULL), +(272, 62, 'A.1.6', 1, 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs', NULL), +(273, 62, 'A.1.7', 3, 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants', NULL), +(274, 62, 'A.1.8', 3, 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique', NULL), +(275, 63, 'A.2.1', 3, 'Installent et configurent des applications standards et les administrent', NULL), +(276, 63, 'A.2.2', 2, 'Actualisent les logiciels existants avec une version actuelle', NULL), +(277, 63, 'A.2.3', 3, 'Décrivent les diverses variantes de licences', NULL), +(278, 63, 'A.2.4', 3, 'Appliquent les processus de la gestion des licences', NULL), +(279, 64, 'A.3.1', 4, 'Exécutent des tests de fonctions selon directives et évaluent les résultats', NULL), +(280, 64, 'A.3.2', 3, 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres', NULL), +(281, 64, 'A.3.3', 4, 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude', NULL), +(282, 65, 'A.4.1', 3, 'Appliquent des scripts et contrôlent leur exécution', NULL), +(283, 65, 'A.4.2', 4, 'Entreprennent des adaptations sur la fonctionnalité du script', NULL), +(284, 65, 'A.4.3', 3, 'Programment des scripts simples selon directives', NULL), +(285, 66, 'B.1.1', 2, 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)', NULL), +(286, 66, 'B.1.2', 4, 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant', NULL), +(287, 66, 'B.1.3', 4, 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte', NULL), +(288, 66, 'B.1.4', 2, 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud', NULL), +(289, 67, 'B.2.1', 3, 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur', NULL), +(290, 67, 'B.2.2', 2, 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions', NULL), +(291, 67, 'B.2.3', 4, 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte', NULL), +(292, 67, 'B.2.4', 3, 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)', NULL), +(293, 68, 'B.3.1', 2, 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT', NULL), +(294, 68, 'B.3.2', 3, 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel', NULL), +(295, 68, 'B.3.3', 3, 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise', NULL), +(296, 68, 'B.3.4', 3, 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation', NULL), +(297, 68, 'B.3.5', 3, 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs', NULL), +(298, 69, 'C.1.1', 3, 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique', NULL), +(299, 69, 'C.1.2', 2, 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution', NULL), +(300, 69, 'C.1.3', 3, 'Appliquent les logiciels appropriés pour la réalisation de présentations', NULL), +(301, 69, 'C.1.4', 3, 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations', NULL), +(302, 69, 'C.1.5', 3, 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)', NULL), +(303, 70, 'C.2.1', 3, 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits', NULL), +(304, 70, 'C.2.2', 3, 'Appliquent des directives et modèles de documentation de l‘entreprise', NULL), +(305, 70, 'C.2.3', 3, 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires', NULL), +(306, 70, 'C.2.4', 4, 'Trient l’indispensable du superflu et fixent les bonnes priorités', NULL), +(307, 70, 'C.2.5', 3, 'Élaborent des modes d’emploi compréhensibles et clairement structurés', NULL), +(308, 70, 'C.2.6', 3, 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace', NULL), +(309, 70, 'C.2.7', 3, 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation', NULL), +(310, 71, 'C.3.1', 3, 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition', NULL), +(311, 71, 'C.3.2', 3, 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée', NULL), +(312, 71, 'C.3.3', 4, 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent', NULL), +(313, 71, 'C.3.4', 3, 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient', NULL), +(314, 71, 'C.3.5', 3, 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)', NULL), +(315, 72, 'D.1.1', 2, 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème', NULL), +(316, 72, 'D.1.2', 4, 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte', NULL), +(317, 72, 'D.1.3', 3, 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement', NULL), +(318, 72, 'D.1.4', 3, 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions', NULL), +(319, 72, 'D.1.5', 3, 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux', NULL), +(320, 72, 'D.1.6', 2, 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes', NULL), +(321, 72, 'D.1.7', 3, 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients', NULL), +(322, 73, 'D.2.1', 3, 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée', NULL), +(323, 73, 'D.2.2', 3, 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe', NULL), +(324, 73, 'D.2.3', 3, 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe', NULL), +(325, 73, 'D.2.4', 2, 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe', NULL), +(326, 73, 'D.2.5', 2, 'Décrivent les causes et la dynamique des conflits', NULL), +(327, 73, 'D.2.6', 4, 'Décèlent à temps les situations de conflits et prend les mesures en conséquence', NULL), +(328, 74, 'D.3.1', 3, 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive', NULL), +(329, 74, 'D.3.2', 2, 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos', NULL), +(330, 74, 'D.3.3', 3, 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail', NULL); +INSERT INTO `objective` (`id`, `fk_operational_competence`, `symbol`, `taxonomy`, `name`, `archive`) VALUES +(331, 74, 'D.3.4', 3, 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes', NULL), +(332, 74, 'D.3.5', 3, 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers', NULL); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `operational_competence` +-- + +CREATE TABLE `operational_competence` ( + `id` int(11) NOT NULL, + `fk_competence_domain` int(11) NOT NULL, + `name` varchar(150) DEFAULT NULL, + `symbol` varchar(10) NOT NULL, + `methodologic` text DEFAULT NULL, + `social` text DEFAULT NULL, + `personal` text DEFAULT NULL, + `archive` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `operational_competence` +-- + +INSERT INTO `operational_competence` (`id`, `fk_competence_domain`, `name`, `symbol`, `methodologic`, `social`, `personal`, `archive`) VALUES +(1, 1, 'Analyser, structurer et documenter les exigences ainsi que les besoins', 'A1', 'Travail structuré, documentation adéquate', 'Comprendre et sentir les problèmes du client, communication avec des partenaires', 'Fiabilité, autoréflexion, interrogation constructive du problème', '2021-05-11 08:16:49'), +(2, 1, 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises', 'A2', 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision', 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau', 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions', '2021-05-11 08:16:49'), +(3, 1, 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies', 'A3', 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration', '', 'Précision dans le travail', '2021-05-11 08:16:49'), +(4, 2, 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', 'B1', '', 'Capacité de critique mutuelle', 'Développer préventivement, estimer les conséquences', '2021-05-11 08:16:49'), +(5, 2, 'Mettre en œuvre des directives d’architecture dans un projet concret', 'B2', '', '', 'Capacités d’abstraction', '2021-05-11 08:16:49'), +(6, 2, 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement', 'B3', 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau', 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant', 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide', '2021-05-11 08:16:49'), +(7, 2, 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet', 'B4', 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices', 'Travail en groupe, empathie', 'Capacités innovatrices, créativité', '2021-05-11 08:16:49'), +(8, 2, 'Garantir la qualité des applications', 'B5', 'Travail reproductible, description propres des versions de l‘application, gestion de projets', 'Capacité de critiques et de conflits, empathie', 'Vérification autocritique des résultats, méticulosité', '2021-05-11 08:16:49'), +(9, 2, 'Préparer et mettre en œuvre l’introduction des applications', 'B6', 'Gestion de projets', 'Capacités de communication, travail en réseau, déroulement sensible', 'Conscience de la responsabilité', '2021-05-11 08:16:49'), +(10, 3, 'Identifier et analyser des données, puis développer avec des modèles de données appropriés', 'C1', 'Déroulement structuré, comportement avec des outils de présentation, développement itératif', 'Communication avec des clients, travail en groupe', 'Précision, abstraction, remise en question critique', '2021-05-11 08:16:49'), +(11, 3, 'Mettre en œuvre un modèle de données dans une base de données', 'C2', '', '', 'Capacité d’abstraction', '2021-05-11 08:16:49'), +(12, 3, 'Accéder à des données à partir d’applications avec un langage approprié', 'C3', '', '', '', '2021-05-11 08:16:49'), +(13, 4, 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau', 'D1', 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement', 'Orientation client, communication écrite et orale', 'Autoréflexion critique', '2021-05-11 08:16:49'), +(14, 5, 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', 'E1', 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', '2021-05-11 08:16:49'), +(15, 5, 'Collaborer à des projets et travailler selon des méthodes de projets', 'E2', 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes', 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs', 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion', '2021-05-11 08:16:49'), +(16, 5, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'E3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise\r\n', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', '2021-05-11 08:16:49'), +(17, 6, 'Evaluer et mettre en service une place de travail utilisateur', 'A1', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), +(18, 6, 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs', 'A2', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale, comportement convivial avec le client', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), +(19, 6, 'Connecter et configurer des appareils périphériques', 'A3', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale, langage adapté au client', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), +(20, 7, 'Mettre en service des systèmes serveurs', 'B1', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale', 'Autoréflexion critique', '2021-05-11 08:16:49'), +(21, 7, 'Installer des réseaux et leurs topologies', 'B2', 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision', 'Faire des entretiens professionnels en anglais', 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction', '2021-05-11 08:16:49'), +(22, 7, 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage', 'B3', 'Actions préventives', 'Conseil', 'Penser et travailler de manière disciplinée, comportement dans les situations de stress', '2021-05-11 08:16:49'), +(23, 8, 'Assurer la maintenance de réseaux et les développer', 'C1', 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', '', 'Précision, fiable, actions attentives', '2021-05-11 08:16:49'), +(24, 8, 'Assurer la maintenance et administrer des serveurs', 'C2', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)', 'Travail en groupe, entretien professionnel en anglais', 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline', '2021-05-11 08:16:49'), +(25, 8, 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', 'C3', 'Techniques d’interrogation', 'Empathie', 'Comprendre et interpréter des documents anglais', '2021-05-11 08:16:49'), +(26, 8, 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)', 'C4', 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique', 'Travailler en groupe', 'Travail patient et auto-critique, sens de la qualité, autoreflexion', '2021-05-11 08:16:49'), +(27, 9, 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques', 'D1', 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide', 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', '2021-05-11 08:16:49'), +(28, 9, 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place', 'D2', 'Techniques d’interrogation, déroulement structuré, travailler selon checklist', 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', '2021-05-11 08:16:49'), +(29, 10, 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', 'E1', '', 'Capacité de critique mutuelle', 'Développer préventivement, estimer les conséquences', '2021-05-11 08:16:49'), +(30, 10, 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement', 'E2', 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau', 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant', 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide', '2021-05-11 08:16:49'), +(31, 10, 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client', 'E3', 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes', 'Travail en groupe, empathie', 'Capacité d’innovation, créativité', '2021-05-11 08:16:49'), +(32, 10, 'Mettre en œuvre des modèles de données dans une base de données', 'E4', '', '', 'Capacité d’abstraction', '2021-05-11 08:16:49'), +(33, 10, 'Accéder à des données à partir d’applications avec un langage approprié', 'E5', '', '', '', '2021-05-11 08:16:49'), +(34, 11, 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace', 'F1', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', '2021-05-11 08:16:49'), +(35, 11, 'Collaborer à des projets', 'F2', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet', '2021-05-11 08:16:49'), +(36, 11, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'F3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', '2021-05-11 08:16:49'), +(42, 12, 'Choisir et mettre en service une place de travail utilisateur', 'A1', 'Analyse des valeurs utiles, déroulement systématique,\r\nfaire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', 'Orientation client, communication écrite et orale.', 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.', '2021-05-11 08:16:49'), +(43, 12, 'Choisir et mettre en service des systèmes serveurs', 'A2', 'Analyse des valeurs utiles, déroulement systématique, faire des\r\nchecklists, travail durable (économiquement, écologiquement,\r\nsocialement).', 'Orientation client, communication écrite et orale.', 'Auto-réflexion critique.', '2021-05-11 08:16:49'), +(44, 12, 'Choisir des composants réseau et les mettre en service', 'A3', 'Analyse des valeurs utiles, déroulement systématique, faire des\r\nchecklists, technique commerciale, méthode durable de travail\r\n(économiquement, écologiquement, socialement).', 'Communication écrite et orale, empathie, travail en groupe,\r\nlangage adapté au public cible.', 'Auto-réflexion critique, capacités d‘abstraction.', '2021-05-11 08:16:49'), +(45, 13, 'Planifier et installer des réseaux ainsi que leur topologie', 'B1', 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.', 'Faire des entretiens professionnels en anglais.', 'Méthode précise de travail, conscience de la responsabilité,\r\ncapacités d’abstraction.', '2021-05-11 08:16:49'), +(46, 13, 'Planifier et assurer la sécurité réseau ainsi que l’accès distant', 'B2', 'Déroulement analytique, principe de Pareto.', 'Reconnaître et classer les besoins en sécurité du client.', 'Travail précis, conscience de la responsabilité.', '2021-05-11 08:16:49'), +(47, 13, 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement', 'B3', 'Agir de manière préventive.', 'Conscience de la hiérarchie.', 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.', '2021-05-11 08:16:49'), +(48, 13, 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau', 'B4', 'Agir de manière préventive.', '', 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.', '2021-05-11 08:16:49'), +(49, 14, 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', 'C1', 'Techniques d’interrogation.', 'Empathie.', 'Comprendre et interpréter des documents anglais.', '2021-05-11 08:16:49'), +(50, 14, 'Mettre en service et configurer les services étendus des serveurs', 'C2', 'Techniques d‘entretiens, pensées préventive et systématique,\r\nconsidération globale, remise en question systématique.', 'Travail en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), +(51, 14, 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)', 'C3', 'Techniques d’entretien, pensée systématique et préventive,\r\nconsidération de l’ensemble, remise en question systématique.', 'Travailler en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), +(52, 14, 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage', 'C4', 'Actions préventives.', 'Conseil.', 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.', '2021-05-11 08:16:49'), +(53, 14, 'Offrir des services via le réseau en prenant des mesures de sécurité', 'C5', 'Techniques d’entretien, pensée systématique et préventive,\r\nconsidération de l’ensemble, remise en question systématique.', 'Travailler en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), +(54, 15, 'Assurer la maintenance de réseaux et les développer', 'D1', 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', '', 'Précision, fiable, actions attentives.', '2021-05-11 08:16:49'), +(55, 15, 'Assurer la maintenance et administrer des serveurs', 'D2', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable\r\n(économiquement, écologiquement, socialement).', 'Travail en groupe, entretien professionnel en anglais.', 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.', '2021-05-11 08:16:49'), +(56, 15, 'Assurer la maintenance et administrer les équipements des utilisateurs', 'D3', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.', 'Travail en groupe, comportement diplomatique avec les utilisateurs.', 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), +(57, 15, 'Enregistrer, standardiser et automatiser des processus TIC', 'D4', 'Déroulement structuré et orienté objectif, pensée et action préventive.', 'Conseil, comportement dans des situations de stress.', 'Penser et travailler de manière disciplinée.', '2021-05-11 08:16:49'), +(58, 15, 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications', 'D5', 'Pensée préventive.', 'Appliquer l’anglais oralement et par écrit.', 'Réflexion, discipline et capacité d‘endurance.', '2021-05-11 08:16:49'), +(59, 16, 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', 'E1', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.', '2021-05-11 08:16:49'), +(60, 16, 'Collaborer à des projets', 'E2', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.', '2021-05-11 08:16:49'), +(61, 16, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'E3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.', '2021-05-11 08:16:49'), +(62, 17, 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance', 'A1', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(63, 17, 'Installer et configurer des applications standard', 'A2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', '', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(64, 17, 'Exécuter et évaluer des tests de fonctionnalité', 'A3', 'Techniques de travail, comportement économique.', '', 'Autonomie et responsabilité.', '2021-05-11 08:16:49'), +(65, 17, 'Mettre en œuvre des scripts d’automatisation', 'A4', 'Techniques de travail, comportement économique.', '', 'Autonomie et responsabilité.', '2021-05-11 08:16:49'), +(66, 18, 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes', 'B1', 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(67, 18, 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes', 'B2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(68, 18, 'Assurer la sécurité des terminaux ICT utilisateurs', 'B3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', 'Capacité à communiquer.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(69, 19, 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT', 'C1', 'Techniques de travail, techniques de présentation, comportement économique.', 'Capacité à communiquer.', 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.', '2021-05-11 08:16:49'), +(70, 19, 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs', 'C2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', 'Capacité à communiquer.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'), +(71, 19, 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT', 'C3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'), +(72, 20, 'Traiter les demandes des clients au 1er et 2e niveau du support', 'D1', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), +(73, 20, 'Se comporter de manière adéquate avec les clients et l’équipe', 'D2', 'Techniques de travail, stratégies d’information et de communication.', 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.', 'Capacité à analyser sa pratique, autonomie et responsabilité.', '2021-05-11 08:16:49'), +(74, 20, 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets', 'D3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `trainer_apprentice` +-- + +CREATE TABLE `trainer_apprentice` ( + `id` int(11) NOT NULL, + `fk_trainer` int(11) NOT NULL, + `fk_apprentice` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `trainer_apprentice` +-- + +INSERT INTO `trainer_apprentice` (`id`, `fk_trainer`, `fk_apprentice`) VALUES +(1, 2, 4), +(5, 2, 4), +(4, 3, 4), +(2, 3, 5), +(3, 6, 7); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `user` +-- + +CREATE TABLE `user` ( + `id` int(11) NOT NULL, + `fk_user_type` int(11) NOT NULL, + `username` varchar(45) COLLATE utf8_unicode_ci NOT NULL, + `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `archive` timestamp NULL DEFAULT current_timestamp(), + `date_creation` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Déchargement des données de la table `user` +-- + +INSERT INTO `user` (`id`, `fk_user_type`, `username`, `password`, `archive`, `date_creation`) VALUES +(1, 1, 'admin', '$2y$10$tUB5R1MGgbO.zD//WArnceTY8IgnFkVVsudIdHBxIrEXJ2z3WBvcK', NULL, '2020-07-09 06:11:05'), +(2, 2, 'FormateurDev', '$2y$10$Q3H8WodgKonQ60SIcu.eWuVKXmxqBw1X5hMpZzwjRKyCTB1H1l.pe', NULL, '2020-07-09 11:15:24'), +(3, 2, 'FormateurSysteme', '$2y$10$v8qCvWlas8DvVkOxY6k4JufPAxFvJxYRLU0tMMbSJYNQjos27RHMK', NULL, '2020-07-09 11:15:47'), +(4, 3, 'ApprentiDev', '$2y$10$6TLaMd5ljshybxANKgIYGOjY0Xur9EgdzcEPy1bgy2b8uyWYeVoEm', NULL, '2020-07-09 11:16:05'), +(5, 3, 'ApprentiSysteme', '$2y$10$m..hDbyG41hMRak6Y/b/pO7n3bgy/V2mnATpRvWzrY2rXrXbm6nbi', NULL, '2020-07-09 11:16:27'), +(6, 2, 'FormateurOperateur', '$2y$10$SbMYPxqnngLjxVGlG4hW..lrc.pr5Dd74nY.KqdANtEESIvmGRpWi', NULL, '2020-07-09 11:24:22'), +(7, 3, 'ApprentiOperateur', '$2y$10$jPNxV2ZZ6Il2LiBQ.CWhNOoud6NsMRFILwHN8kpD410shWeiGpuxK', NULL, '2020-07-09 11:24:45'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `user_course` +-- + +CREATE TABLE `user_course` ( + `id` int(11) NOT NULL, + `fk_user` int(11) NOT NULL, + `fk_course_plan` int(11) NOT NULL, + `fk_status` int(11) NOT NULL, + `date_begin` date NOT NULL, + `date_end` date NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `user_course` +-- + +INSERT INTO `user_course` (`id`, `fk_user`, `fk_course_plan`, `fk_status`, `date_begin`, `date_end`) VALUES +(1, 4, 1, 1, '2020-07-09', '0000-00-00'), +(2, 5, 3, 1, '2020-07-09', '0000-00-00'), +(3, 7, 4, 1, '2020-07-09', '0000-00-00'), +(4, 5, 1, 1, '2021-05-06', '2021-08-20'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `user_course_status` +-- + +CREATE TABLE `user_course_status` ( + `id` int(11) NOT NULL, + `name` varchar(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `user_course_status` +-- + +INSERT INTO `user_course_status` (`id`, `name`) VALUES +(1, 'En cours'), +(2, 'Réussi'), +(3, 'Échouée'), +(4, 'Suspendue'), +(5, 'Abandonnée'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `user_type` +-- + +CREATE TABLE `user_type` ( + `id` int(11) NOT NULL, + `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL, + `access_level` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Déchargement des données de la table `user_type` +-- + +INSERT INTO `user_type` (`id`, `name`, `access_level`) VALUES +(1, 'Administrateur', 4), +(2, 'Formateur', 2), +(3, 'Apprenti', 1); + +-- +-- Index pour les tables déchargées +-- + +-- +-- Index pour la table `acquisition_level` +-- +ALTER TABLE `acquisition_level` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `acquisition_status` +-- +ALTER TABLE `acquisition_status` + ADD PRIMARY KEY (`id`), + ADD KEY `constraint_acquisition_statut_level` (`fk_acquisition_level`), + ADD KEY `constraint_objective_acquisition_statut` (`fk_objective`), + ADD KEY `constraint_user_acquisition_statut` (`fk_user_course`); + +-- +-- Index pour la table `ci_sessions` +-- +ALTER TABLE `ci_sessions` + ADD KEY `ci_sessions_timestamp` (`timestamp`); + +-- +-- Index pour la table `comment` +-- +ALTER TABLE `comment` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_acquisition_status` (`fk_acquisition_status`), + ADD KEY `fk_trainer` (`fk_trainer`); + +-- +-- Index pour la table `competence_domain` +-- +ALTER TABLE `competence_domain` + ADD PRIMARY KEY (`id`), + ADD KEY `constraint_competence_domain_course_plan` (`fk_course_plan`); + +-- +-- Index pour la table `course_plan` +-- +ALTER TABLE `course_plan` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `objective` +-- +ALTER TABLE `objective` + ADD PRIMARY KEY (`id`), + ADD KEY `constraint_operational_competence` (`fk_operational_competence`); + +-- +-- Index pour la table `operational_competence` +-- +ALTER TABLE `operational_competence` + ADD PRIMARY KEY (`id`), + ADD KEY `constraint_domain_operational` (`fk_competence_domain`); + +-- +-- Index pour la table `trainer_apprentice` +-- +ALTER TABLE `trainer_apprentice` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_trainer` (`fk_trainer`,`fk_apprentice`), + ADD KEY `fk_apprentice` (`fk_apprentice`); + +-- +-- Index pour la table `user` +-- +ALTER TABLE `user` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_user_user_type1_idx` (`fk_user_type`); + +-- +-- Index pour la table `user_course` +-- +ALTER TABLE `user_course` + ADD PRIMARY KEY (`id`), + ADD KEY `constraint_user` (`fk_user`), + ADD KEY `constraint_user_course_plan` (`fk_course_plan`), + ADD KEY `constraint_status` (`fk_status`); + +-- +-- Index pour la table `user_course_status` +-- +ALTER TABLE `user_course_status` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `user_type` +-- +ALTER TABLE `user_type` + ADD PRIMARY KEY (`id`); + +-- +-- AUTO_INCREMENT pour les tables déchargées +-- + +-- +-- AUTO_INCREMENT pour la table `acquisition_status` +-- +ALTER TABLE `acquisition_status` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=303; + +-- +-- AUTO_INCREMENT pour la table `comment` +-- +ALTER TABLE `comment` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `competence_domain` +-- +ALTER TABLE `competence_domain` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22; + +-- +-- AUTO_INCREMENT pour la table `course_plan` +-- +ALTER TABLE `course_plan` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- AUTO_INCREMENT pour la table `objective` +-- +ALTER TABLE `objective` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=333; + +-- +-- AUTO_INCREMENT pour la table `operational_competence` +-- +ALTER TABLE `operational_competence` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=75; + +-- +-- AUTO_INCREMENT pour la table `trainer_apprentice` +-- +ALTER TABLE `trainer_apprentice` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- AUTO_INCREMENT pour la table `user` +-- +ALTER TABLE `user` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; + +-- +-- AUTO_INCREMENT pour la table `user_course` +-- +ALTER TABLE `user_course` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- AUTO_INCREMENT pour la table `user_course_status` +-- +ALTER TABLE `user_course_status` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- AUTO_INCREMENT pour la table `user_type` +-- +ALTER TABLE `user_type` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- Contraintes pour les tables déchargées +-- + +-- +-- Contraintes pour la table `acquisition_status` +-- +ALTER TABLE `acquisition_status` + ADD CONSTRAINT `constraint_acquisition_statut_level` FOREIGN KEY (`fk_acquisition_level`) REFERENCES `acquisition_level` (`id`), + ADD CONSTRAINT `constraint_objective_acquisition_statut` FOREIGN KEY (`fk_objective`) REFERENCES `objective` (`id`), + ADD CONSTRAINT `constraint_user_acquisition_statut` FOREIGN KEY (`fk_user_course`) REFERENCES `user_course` (`id`); + +-- +-- Contraintes pour la table `comment` +-- +ALTER TABLE `comment` + ADD CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`fk_acquisition_status`) REFERENCES `acquisition_status` (`id`), + ADD CONSTRAINT `comment_ibfk_2` FOREIGN KEY (`fk_trainer`) REFERENCES `user` (`id`); + +-- +-- Contraintes pour la table `competence_domain` +-- +ALTER TABLE `competence_domain` + ADD CONSTRAINT `constraint_competence_domain_course_plan` FOREIGN KEY (`fk_course_plan`) REFERENCES `course_plan` (`id`); + +-- +-- Contraintes pour la table `objective` +-- +ALTER TABLE `objective` + ADD CONSTRAINT `constraint_operational_competence` FOREIGN KEY (`fk_operational_competence`) REFERENCES `operational_competence` (`id`); + +-- +-- Contraintes pour la table `operational_competence` +-- +ALTER TABLE `operational_competence` + ADD CONSTRAINT `constraint_domain_operational` FOREIGN KEY (`fk_competence_domain`) REFERENCES `competence_domain` (`id`); + +-- +-- Contraintes pour la table `trainer_apprentice` +-- +ALTER TABLE `trainer_apprentice` + ADD CONSTRAINT `trainer_apprentice_ibfk_1` FOREIGN KEY (`fk_trainer`) REFERENCES `user` (`id`), + ADD CONSTRAINT `trainer_apprentice_ibfk_2` FOREIGN KEY (`fk_apprentice`) REFERENCES `user` (`id`); + +-- +-- Contraintes pour la table `user` +-- +ALTER TABLE `user` + ADD CONSTRAINT `fk_user_user_type1` FOREIGN KEY (`fk_user_type`) REFERENCES `user_type` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- +-- Contraintes pour la table `user_course` +-- +ALTER TABLE `user_course` + ADD CONSTRAINT `constraint_status` FOREIGN KEY (`fk_status`) REFERENCES `user_course_status` (`id`), + ADD CONSTRAINT `constraint_user` FOREIGN KEY (`fk_user`) REFERENCES `user` (`id`), + ADD CONSTRAINT `constraint_user_course_plan` FOREIGN KEY (`fk_course_plan`) REFERENCES `course_plan` (`id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From 200d329d18c02d3945f3a492eb572ace164b1ca3 Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 12 May 2021 08:42:45 +0200 Subject: [PATCH 026/172] added methods getApprentices and getTrainers --- orif/user/Models/User_model.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index a5df9bc3..cc4883ab 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -75,4 +75,20 @@ public static function get_access_level($fkUserTypeId){ return User_type_model::getInstance()->getWhere(['id'=>$fkUserTypeId])->getRow()->access_level; } + + /** + * @return array the list of apprentices + */ + public static function getApprentices(){ + + return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Apprenti')->first()['id'])->findAll(); + } + + /** + * @return array the list of trainers + */ + public static function getTrainers(){ + return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->findAll(); + } + } \ No newline at end of file From e3a2bd1b127e99d6cd94fbcd71cd47d95656fda9 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 18 May 2021 11:11:00 +0200 Subject: [PATCH 027/172] Controller Apprentice add list and detailed view from ci3 to ci4 --- app/Config/Routes.php | 1 - orif/plafor/Controllers/Admin.php | 57 ++------------ orif/plafor/Controllers/Apprentice.php | 59 ++++++++++++++ orif/plafor/Views/apprentice/list.php | 4 +- orif/plafor/Views/apprentice/view.php | 76 +++++++++++++++++++ .../{template_Menu.php => admin_menu.php} | 4 +- 6 files changed, 144 insertions(+), 57 deletions(-) create mode 100644 orif/plafor/Views/apprentice/view.php rename orif/plafor/Views/templates/{template_Menu.php => admin_menu.php} (80%) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index c993e3ed..1afac75d 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -33,7 +33,6 @@ // We get a performance increase by specifying the default // route since we don't have to scan directories. $routes->get('/', '\Welcome\Controllers\Home::index'); - /* * -------------------------------------------------------------------- * Additional Routing diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 405c22c7..13c5df34 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -9,6 +9,9 @@ use Plafor\Models\ObjectiveModel; use Plafor\Models\OperationalCompetenceModel; use Plafor\Models\UserCourseModel; +use Plafor\Models\UserCourseStatusModel; +use Plafor\Models\TrainerApprenticeModel; + use User\Models\User_type_model; use User\Models\User_model; @@ -54,7 +57,7 @@ public function list_course_plan($id_apprentice = null) $output[] = ['course_plans' => $course_plans]; } - $this->display_view(['Plafor\templates/template_Menu','Plafor\course_plan\list'], $output); + $this->display_view(['Plafor\templates/admin_menu','Plafor\course_plan\list'], $output); } /** * Adds or modify a course plan @@ -189,57 +192,7 @@ public function list_competence_domain($id_course_plan = null) $output[] = ['course_plan' => $course_plan]; } - $this->display_view(['Plafor\templates/template_Menu','\Plafor\competence_domain\list'], $output); - } - - public function list_apprentice() - { - - //if($trainer_id == null){ - $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); - $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); - $coursesList = CoursePlanModel::getInstance()->findall(); - $courses = UserCourseModel::getInstance()->findall(); - //}else{ - // $apprentices = $this->user_model->get_many_by(array('id' => $trainer_id)); - - //} - - $output = array( - 'apprentices' => $apprentices, - 'coursesList' => $coursesList, - 'courses' => $courses - ); - - $this->display_view(['Plafor\templates/template_Menu','Plafor\apprentice/list'], $output); - } - - public function view_apprentice($apprentice_id = null) - { - $apprentice = $this->user_model->get($apprentice_id); - - if($apprentice->fk_user_type != $this->user_type_model->get_by('name',$this->lang->line('title_apprentice'))->id){ - redirect(base_url('apprentice/list_apprentice')); - exit(); - } - - $user_courses = $this->user_course_model->get_many_by('fk_user',$apprentice_id); - $user_course_status = $this->user_course_status_model->get_all(); - $course_plans = $this->course_plan_model->get_all(); - - $trainers = $this->user_model->get_many_by('fk_user_type',$this->user_type_model->get_by('name',$this->lang->line('title_trainer'))->id); - $links = $this->trainer_apprentice_model->get_many_by('fk_apprentice',$apprentice_id); - - $output = array( - 'apprentice' => $apprentice, - 'trainers' => $trainers, - 'links' => $links, - 'user_courses' => $user_courses, - 'user_course_status' => $user_course_status, - 'course_plans' => $course_plans - ); - - $this->display_view('apprentice/view',$output); + $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); } } \ No newline at end of file diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index c20a68dd..8fb3e46c 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -4,7 +4,16 @@ namespace Plafor\Controllers; +use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; +use Plafor\Models\ObjectiveModel; +use Plafor\Models\OperationalCompetenceModel; +use Plafor\Models\UserCourseModel; +use Plafor\Models\UserCourseStatusModel; +use Plafor\Models\TrainerApprenticeModel; + +use User\Models\User_type_model; +use User\Models\User_model; class Apprentice extends \App\Controllers\BaseController { @@ -34,4 +43,54 @@ public function view_course_plan($course_plan_id = null) $this->display_view('\Plafor\course_plan\view',$output); } + + public function list_apprentice() + { + + //if($trainer_id == null){ + $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); + $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); + $coursesList = CoursePlanModel::getInstance()->findall(); + $courses = UserCourseModel::getInstance()->findall(); + //}else{ + // $apprentices = $this->user_model->get_many_by(array('id' => $trainer_id)); + + //} + + $output = array( + 'apprentices' => $apprentices, + 'coursesList' => $coursesList, + 'courses' => $courses + ); + + $this->display_view(['Plafor\templates/admin_menu','Plafor\apprentice/list'], $output); + } + + public function view_apprentice($apprentice_id = null) + { + $apprentice = User_model::getInstance()->find($apprentice_id); + + if(is_null($apprentice) || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + return redirect()->to(base_url("/plafor/apprentice/list_apprentice")); + } + + $user_courses = UserCourseModel::getInstance()->where('fk_user',$apprentice_id)->findall(); + $user_course_status = UserCourseStatusModel::getInstance()->findAll(); + $course_plans = CoursePlanModel::getInstance()->findall(); + + $trainers = User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name',lang('user_lang.title_trainer'))->first()['id'])->findall(); + $links = TrainerApprenticeModel::getInstance()->where('fk_apprentice',$apprentice_id)->findAll(); + + $output = array( + 'apprentice' => $apprentice, + 'trainers' => $trainers, + 'links' => $links, + 'user_courses' => $user_courses, + 'user_course_status' => $user_course_status, + 'course_plans' => $course_plans + );/* + var_dump($course_plan); + exit();*/ + $this->display_view('Plafor\apprentice/view',$output); + } } \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index e9668746..cdad1508 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -7,7 +7,7 @@ * @copyright Copyright (c) Orif (http://www.orif.ch) */ ?> -
- +

@@ -24,7 +24,7 @@ - + +
+
+

+
+
+

+

+
+
+

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+

+ +
+
+ + + + + + + + + + + + + +
+
+
+
diff --git a/orif/plafor/Views/templates/template_Menu.php b/orif/plafor/Views/templates/admin_menu.php similarity index 80% rename from orif/plafor/Views/templates/template_Menu.php rename to orif/plafor/Views/templates/admin_menu.php index 443d7cde..dde1da79 100644 --- a/orif/plafor/Views/templates/template_Menu.php +++ b/orif/plafor/Views/templates/admin_menu.php @@ -2,7 +2,7 @@
\ No newline at end of file From 68d36c7bcc3cc86003180fdfb7eba0ff60f33630 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:16:56 +0200 Subject: [PATCH 028/172] updated getOperational --- orif/plafor/Models/objectiveModel.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 734722fa..2a4443fa 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -27,11 +27,11 @@ public static function getInstance(){ } /** - * @param $fkOperationalCompetence + * @param $fkOperationalCompetenceId * @return array|object|null */ - public static function getOperationalCompetence($fkOperationalCompetence){ - return OperationalCompetenceModel::getInstance()->find($fkOperationalCompetence); + public static function getOperationalCompetence($fkOperationalCompetenceId){ + return OperationalCompetenceModel::getInstance()->find($fkOperationalCompetenceId); } /** From 76810ee070c73705f766c9db5cefade0db560139 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:17:11 +0200 Subject: [PATCH 029/172] updated getOperational --- orif/plafor/Models/operationalCompetenceModel.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index c628f976..d8b075fa 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -27,11 +27,11 @@ public static function getInstance(){ } /** - * @param $fkCompetenceDomain + * @param $fkCompetenceDomainId * @return array|object|null */ - public static function getCompetenceDomain($fkCompetenceDomain){ - return CompetenceDomainModel::getInstance()->find($fkCompetenceDomain); + public static function getCompetenceDomain($fkCompetenceDomainId){ + return CompetenceDomainModel::getInstance()->find($fkCompetenceDomainId); } /** From bf57982b88b745f41547f75b697761ac5a90223c Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:17:47 +0200 Subject: [PATCH 030/172] updated getTrainer and getApprentice --- orif/plafor/Models/trainerApprenticeModel.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/orif/plafor/Models/trainerApprenticeModel.php b/orif/plafor/Models/trainerApprenticeModel.php index 74217832..bc983d5b 100644 --- a/orif/plafor/Models/trainerApprenticeModel.php +++ b/orif/plafor/Models/trainerApprenticeModel.php @@ -25,19 +25,19 @@ public static function getInstance(){ } /** - * @param $trainerApprentice + * @param $fkTrainerId * @return array */ - public static function getTrainer($trainerApprentice){ - return User_model::getInstance()->find($trainerApprentice['fk_trainer']); + public static function getTrainer($fkTrainerId){ + return User_model::getInstance()->find($fkTrainerId); } /** - * @param $trainerApprentice + * @param $fkApprenticeId * @return array */ - public static function getApprentice($trainerApprentice){ - return User_model::getInstance()->find($trainerApprentice['fk_apprentice']); + public static function getApprentice($fkApprenticeId){ + return User_model::getInstance()->find($fkApprenticeId); } } \ No newline at end of file From f0b0031debcb00734473396e2cd3d9987b6530f6 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:18:53 +0200 Subject: [PATCH 031/172] updated functions getApprentices and getTrainers to select withdeleted --- orif/user/Models/User_model.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index cc4883ab..04171745 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -79,16 +79,23 @@ public static function get_access_level($fkUserTypeId){ /** * @return array the list of apprentices */ - public static function getApprentices(){ + public static function getApprentices(bool $withDelted=false){ + if ($withDelted) + return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Apprenti')->first()['id'])->withDeleted()->findAll(); return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Apprenti')->first()['id'])->findAll(); + } /** * @return array the list of trainers */ - public static function getTrainers(){ + public static function getTrainers(bool $withDelted=false){ + if ($withDelted) + return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->withDeleted()->findAll(); return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->findAll(); + } + } \ No newline at end of file From a5f607c6c1a5577ec1e3c161193d46bd182df371 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:20:10 +0200 Subject: [PATCH 032/172] added return type to getInstance --- orif/user/Models/User_type_model.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/orif/user/Models/User_type_model.php b/orif/user/Models/User_type_model.php index 5ab10e64..31560b14 100644 --- a/orif/user/Models/User_type_model.php +++ b/orif/user/Models/User_type_model.php @@ -10,12 +10,17 @@ namespace User\Models; +use CodeIgniter\Model; + class User_type_model extends \CodeIgniter\Model { private static $userTypeModel; protected $table='user_type'; protected $primaryKey='id'; + /** + * @return Model + */ public static function getInstance(){ if (User_type_model::$userTypeModel==null) User_type_model::$userTypeModel=new User_type_model(); From 0f3672c7263de9e068244596c70d81468ceb5bf2 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 11:20:35 +0200 Subject: [PATCH 033/172] modified variable name of functions --- orif/plafor/Models/userCourseModel.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/orif/plafor/Models/userCourseModel.php b/orif/plafor/Models/userCourseModel.php index bd74fc27..349a5a0c 100644 --- a/orif/plafor/Models/userCourseModel.php +++ b/orif/plafor/Models/userCourseModel.php @@ -41,11 +41,11 @@ public static function getCoursePlan($fkCoursePlanId){ } /** - * @param $fkUserCourseStatus + * @param $fkUserCourseStatusId * @return array */ - public static function getUserCourseStatus($fkUserCourseStatus){ - return UserCourseStatusModel::getInstance()->find($fkUserCourseStatus); + public static function getUserCourseStatus($fkUserCourseStatusId){ + return UserCourseStatusModel::getInstance()->find($fkUserCourseStatusId); } /** From d65f5af305313a48e9fda53fe02a1baf7f364bf3 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Tue, 18 May 2021 13:09:39 +0200 Subject: [PATCH 034/172] Delete database script file --- app/Database/plafor.sql | 1274 --------------------------------------- 1 file changed, 1274 deletions(-) delete mode 100644 app/Database/plafor.sql diff --git a/app/Database/plafor.sql b/app/Database/plafor.sql deleted file mode 100644 index e13e4d7a..00000000 --- a/app/Database/plafor.sql +++ /dev/null @@ -1,1274 +0,0 @@ --- phpMyAdmin SQL Dump --- version 5.0.4 --- https://www.phpmyadmin.net/ --- --- Hôte : 127.0.0.1 --- Généré le : mar. 11 mai 2021 à 13:34 --- Version du serveur : 10.4.17-MariaDB --- Version de PHP : 8.0.2 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -START TRANSACTION; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; - --- --- Base de données : `plafor` --- - --- -------------------------------------------------------- - --- --- Structure de la table `acquisition_level` --- - -CREATE TABLE `acquisition_level` ( - `id` int(11) NOT NULL, - `name` varchar(20) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `acquisition_level` --- - -INSERT INTO `acquisition_level` (`id`, `name`) VALUES -(1, 'Non expliqué'), -(2, 'Expliqué'), -(3, 'Exercé'), -(4, 'Autonome'); - --- -------------------------------------------------------- - --- --- Structure de la table `acquisition_status` --- - -CREATE TABLE `acquisition_status` ( - `id` int(11) NOT NULL, - `fk_objective` int(11) NOT NULL, - `fk_user_course` int(11) NOT NULL, - `fk_acquisition_level` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `acquisition_status` --- - -INSERT INTO `acquisition_status` (`id`, `fk_objective`, `fk_user_course`, `fk_acquisition_level`) VALUES -(1, 1, 1, 1), -(2, 2, 1, 1), -(3, 3, 1, 1), -(4, 4, 1, 1), -(5, 5, 1, 1), -(6, 6, 1, 1), -(7, 7, 1, 1), -(8, 8, 1, 1), -(9, 9, 1, 1), -(10, 10, 1, 1), -(11, 11, 1, 1), -(12, 12, 1, 1), -(13, 13, 1, 1), -(14, 14, 1, 1), -(15, 15, 1, 1), -(16, 16, 1, 1), -(17, 17, 1, 1), -(18, 18, 1, 1), -(19, 19, 1, 1), -(20, 20, 1, 1), -(21, 21, 1, 1), -(22, 22, 1, 1), -(23, 23, 1, 1), -(24, 24, 1, 1), -(25, 25, 1, 1), -(26, 26, 1, 1), -(27, 27, 1, 1), -(28, 28, 1, 1), -(29, 29, 1, 1), -(30, 30, 1, 1), -(31, 31, 1, 1), -(32, 32, 1, 1), -(33, 33, 1, 1), -(34, 34, 1, 1), -(35, 35, 1, 1), -(36, 36, 1, 1), -(37, 37, 1, 1), -(38, 38, 1, 1), -(39, 39, 1, 1), -(40, 40, 1, 1), -(41, 41, 1, 1), -(42, 42, 1, 1), -(43, 43, 1, 1), -(44, 44, 1, 1), -(45, 45, 1, 1), -(46, 46, 1, 1), -(47, 47, 1, 1), -(48, 48, 1, 1), -(49, 49, 1, 1), -(50, 50, 1, 1), -(51, 51, 1, 1), -(52, 52, 1, 1), -(53, 53, 1, 1), -(54, 54, 1, 1), -(55, 55, 1, 1), -(56, 56, 1, 1), -(57, 57, 1, 1), -(58, 58, 1, 1), -(59, 59, 1, 1), -(60, 60, 1, 1), -(61, 61, 1, 1), -(62, 62, 1, 1), -(63, 63, 1, 1), -(64, 64, 1, 1), -(65, 65, 1, 1), -(66, 66, 1, 1), -(67, 67, 1, 1), -(68, 68, 1, 1), -(69, 69, 1, 1), -(70, 70, 1, 1), -(71, 71, 1, 1), -(72, 72, 1, 1), -(73, 73, 1, 1), -(74, 177, 2, 1), -(75, 178, 2, 1), -(76, 179, 2, 1), -(77, 180, 2, 1), -(78, 181, 2, 1), -(79, 182, 2, 1), -(80, 183, 2, 1), -(81, 184, 2, 1), -(82, 185, 2, 1), -(83, 186, 2, 1), -(84, 187, 2, 1), -(85, 188, 2, 1), -(86, 189, 2, 1), -(87, 190, 2, 1), -(88, 191, 2, 1), -(89, 192, 2, 1), -(90, 193, 2, 1), -(91, 194, 2, 1), -(92, 195, 2, 1), -(93, 196, 2, 1), -(94, 197, 2, 1), -(95, 198, 2, 1), -(96, 199, 2, 1), -(97, 200, 2, 1), -(98, 201, 2, 1), -(99, 202, 2, 1), -(100, 203, 2, 1), -(101, 204, 2, 1), -(102, 205, 2, 1), -(103, 206, 2, 1), -(104, 207, 2, 1), -(105, 208, 2, 1), -(106, 209, 2, 1), -(107, 210, 2, 1), -(108, 211, 2, 1), -(109, 212, 2, 1), -(110, 213, 2, 1), -(111, 214, 2, 1), -(112, 215, 2, 1), -(113, 216, 2, 1), -(114, 217, 2, 1), -(115, 218, 2, 1), -(116, 219, 2, 1), -(117, 220, 2, 1), -(118, 221, 2, 1), -(119, 222, 2, 1), -(120, 223, 2, 1), -(121, 224, 2, 1), -(122, 225, 2, 1), -(123, 226, 2, 1), -(124, 227, 2, 1), -(125, 228, 2, 1), -(126, 229, 2, 1), -(127, 230, 2, 1), -(128, 231, 2, 1), -(129, 232, 2, 1), -(130, 233, 2, 1), -(131, 234, 2, 1), -(132, 235, 2, 1), -(133, 236, 2, 1), -(134, 237, 2, 1), -(135, 238, 2, 1), -(136, 239, 2, 1), -(137, 240, 2, 1), -(138, 241, 2, 1), -(139, 242, 2, 1), -(140, 243, 2, 1), -(141, 244, 2, 1), -(142, 245, 2, 1), -(143, 246, 2, 1), -(144, 247, 2, 1), -(145, 248, 2, 1), -(146, 249, 2, 1), -(147, 250, 2, 1), -(148, 251, 2, 1), -(149, 252, 2, 1), -(150, 253, 2, 1), -(151, 254, 2, 1), -(152, 255, 2, 1), -(153, 256, 2, 1), -(154, 257, 2, 1), -(155, 258, 2, 1), -(156, 259, 2, 1), -(157, 260, 2, 1), -(158, 261, 2, 1), -(159, 262, 2, 1), -(160, 263, 2, 1), -(161, 264, 2, 1), -(162, 265, 2, 1), -(163, 266, 2, 1), -(164, 267, 3, 1), -(165, 268, 3, 1), -(166, 269, 3, 1), -(167, 270, 3, 1), -(168, 271, 3, 1), -(169, 272, 3, 1), -(170, 273, 3, 1), -(171, 274, 3, 1), -(172, 275, 3, 1), -(173, 276, 3, 1), -(174, 277, 3, 1), -(175, 278, 3, 1), -(176, 279, 3, 1), -(177, 280, 3, 1), -(178, 281, 3, 1), -(179, 282, 3, 1), -(180, 283, 3, 1), -(181, 284, 3, 1), -(182, 285, 3, 1), -(183, 286, 3, 1), -(184, 287, 3, 1), -(185, 288, 3, 1), -(186, 289, 3, 1), -(187, 290, 3, 1), -(188, 291, 3, 1), -(189, 292, 3, 1), -(190, 293, 3, 1), -(191, 294, 3, 1), -(192, 295, 3, 1), -(193, 296, 3, 1), -(194, 297, 3, 1), -(195, 298, 3, 1), -(196, 299, 3, 1), -(197, 300, 3, 1), -(198, 301, 3, 1), -(199, 302, 3, 1), -(200, 303, 3, 1), -(201, 304, 3, 1), -(202, 305, 3, 1), -(203, 306, 3, 1), -(204, 307, 3, 1), -(205, 308, 3, 1), -(206, 309, 3, 1), -(207, 310, 3, 1), -(208, 311, 3, 1), -(209, 312, 3, 1), -(210, 313, 3, 1), -(211, 314, 3, 1), -(212, 315, 3, 1), -(213, 316, 3, 1), -(214, 317, 3, 1), -(215, 318, 3, 1), -(216, 319, 3, 1), -(217, 320, 3, 1), -(218, 321, 3, 1), -(219, 322, 3, 1), -(220, 323, 3, 1), -(221, 324, 3, 1), -(222, 325, 3, 1), -(223, 326, 3, 1), -(224, 327, 3, 1), -(225, 328, 3, 1), -(226, 329, 3, 1), -(227, 330, 3, 1), -(228, 331, 3, 1), -(229, 332, 3, 1), -(230, 1, 4, 1), -(231, 2, 4, 1), -(232, 3, 4, 1), -(233, 4, 4, 1), -(234, 5, 4, 1), -(235, 6, 4, 1), -(236, 7, 4, 1), -(237, 8, 4, 1), -(238, 9, 4, 1), -(239, 10, 4, 1), -(240, 11, 4, 1), -(241, 12, 4, 1), -(242, 13, 4, 1), -(243, 14, 4, 1), -(244, 15, 4, 1), -(245, 16, 4, 1), -(246, 17, 4, 1), -(247, 18, 4, 1), -(248, 19, 4, 1), -(249, 20, 4, 1), -(250, 21, 4, 1), -(251, 22, 4, 1), -(252, 23, 4, 1), -(253, 24, 4, 1), -(254, 25, 4, 1), -(255, 26, 4, 1), -(256, 27, 4, 1), -(257, 28, 4, 1), -(258, 29, 4, 1), -(259, 30, 4, 1), -(260, 31, 4, 1), -(261, 32, 4, 1), -(262, 33, 4, 1), -(263, 34, 4, 1), -(264, 35, 4, 1), -(265, 36, 4, 1), -(266, 37, 4, 1), -(267, 38, 4, 1), -(268, 39, 4, 1), -(269, 40, 4, 1), -(270, 41, 4, 1), -(271, 42, 4, 1), -(272, 43, 4, 1), -(273, 44, 4, 1), -(274, 45, 4, 1), -(275, 46, 4, 1), -(276, 47, 4, 1), -(277, 48, 4, 1), -(278, 49, 4, 1), -(279, 50, 4, 1), -(280, 51, 4, 1), -(281, 52, 4, 1), -(282, 53, 4, 1), -(283, 54, 4, 1), -(284, 55, 4, 1), -(285, 56, 4, 1), -(286, 57, 4, 1), -(287, 58, 4, 1), -(288, 59, 4, 1), -(289, 60, 4, 1), -(290, 61, 4, 1), -(291, 62, 4, 1), -(292, 63, 4, 1), -(293, 64, 4, 1), -(294, 65, 4, 1), -(295, 66, 4, 1), -(296, 67, 4, 1), -(297, 68, 4, 1), -(298, 69, 4, 1), -(299, 70, 4, 1), -(300, 71, 4, 1), -(301, 72, 4, 1), -(302, 73, 4, 1); - --- -------------------------------------------------------- - --- --- Structure de la table `ci_sessions` --- - -CREATE TABLE `ci_sessions` ( - `id` varchar(128) NOT NULL, - `ip_address` varchar(45) NOT NULL, - `timestamp` int(10) UNSIGNED NOT NULL DEFAULT 0, - `data` blob NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `ci_sessions` --- - -INSERT INTO `ci_sessions` (`id`, `ip_address`, `timestamp`, `data`) VALUES -('l8c5ovs7kjvvm4kt3ghh37rohlca458b', '127.0.0.1', 1620718518, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731383531383b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), -('02ise7d4bdun88l1so9rmofflt3karvl', '127.0.0.1', 1620718973, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731383937333b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), -('vf3t9qndb30lualt5r6d8bt8fpdok6d5', '127.0.0.1', 1620719541, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303731393534313b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a33393a22687474703a2f2f6c6f63616c686f73742f63695f7061636b626173655f76342f7075626c69632f223b), -('rq68tn33eu26q1tjqk2asncsqkhp32er', '127.0.0.1', 1620720138, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732303133383b6c6f676765645f696e7c623a303b5f63695f70726576696f75735f75726c7c733a34303a22687474703a2f2f6c6f63616c686f73742f706c61666f7256332f706c61666f722f7075626c69632f223b), -('ec3tlqvumibpnse577ehhi4do0quijp6', '127.0.0.1', 1620720497, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732303439373b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a33313a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('jl0hrld1e9ncaapjm0oi01j63ejab4o7', '127.0.0.1', 1620721413, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732313431333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f757273655f706c616e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('89ogar248bmimsmk8kjlnfm036eo8lgb', '127.0.0.1', 1620721714, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732313731343b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('hmmfr2lbfgludriibrfellltt4ov8bnk', '127.0.0.1', 1620722278, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732323237383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('pqms2amsbtgv27lkucdrnsh2kegv9adn', '127.0.0.1', 1620722832, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732323833323b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('pdaanfinpo087khsgmvm7iia32ukd5q7', '127.0.0.1', 1620723284, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732333238343b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('7pdcvblhssa3npif1rkc5thh30hr0btr', '127.0.0.1', 1620723793, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732333739333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('u2t1tdjeo04ng2hg2muk4ac9llg6gc47', '127.0.0.1', 1620724383, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732343338333b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('ru8e1aba7d20jqplr6ld4fu3ghdheok1', '127.0.0.1', 1620724728, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732343732383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('bgms7pj3kakjv4fs2svbk0rnvf55v36g', '127.0.0.1', 1620725108, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732353130383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a36363a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f636f6d706574656e63655f646f6d61696e223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('7ao9jstrlgbpfij63v6udqtivih43bpt', '127.0.0.1', 1620725507, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732353530373b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('vfgpi9otrn8fi1uo8kp0al3bvkqjuvg2', '127.0.0.1', 1620726360, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732363336303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('5ha39a1toesvlfup0e5ko8cv4hvn9dq0', '127.0.0.1', 1620729378, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732393337383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('tb5go5nr444neneel1ogemdnd8m38g41', '127.0.0.1', 1620729828, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303732393832383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('dbtlv5stn9sp5sis3r2qoeohed2d5srg', '127.0.0.1', 1620730178, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303137383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('rihih82if836asho7bc04g1fg90coil7', '127.0.0.1', 1620730479, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303437393b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('13uldti1vleg3cg1dptmtsqpaj5ukc1e', '127.0.0.1', 1620730948, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733303934383b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('db046jsdu3h94vvfn80ajpuqf27eaopr', '127.0.0.1', 1620732400, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733323430303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b), -('1dcv7dc5k8jl2u09igc7tok7dtp5edjg', '127.0.0.1', 1620732490, 0x5f5f63695f6c6173745f726567656e65726174657c693a313632303733323430303b6c6f676765645f696e7c623a313b5f63695f70726576696f75735f75726c7c733a35393a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c69632f706c61666f722f61646d696e2f6c6973745f61707072656e74696365223b61667465725f6c6f67696e5f72656469726563747c733a33303a22687474703a2f2f6c6f63616c686f73742f706c61666f722f7075626c6963223b757365725f69647c693a313b757365726e616d657c733a353a2261646d696e223b757365725f6163636573737c693a343b); - --- -------------------------------------------------------- - --- --- Structure de la table `comment` --- - -CREATE TABLE `comment` ( - `id` int(11) NOT NULL, - `fk_trainer` int(11) NOT NULL, - `fk_acquisition_status` int(11) NOT NULL, - `comment` text NOT NULL, - `date_creation` datetime NOT NULL DEFAULT current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `competence_domain` --- - -CREATE TABLE `competence_domain` ( - `id` int(11) NOT NULL, - `fk_course_plan` int(11) NOT NULL, - `symbol` varchar(10) NOT NULL, - `name` varchar(100) NOT NULL, - `archive` timestamp NULL DEFAULT current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `competence_domain` --- - -INSERT INTO `competence_domain` (`id`, `fk_course_plan`, `symbol`, `name`, `archive`) VALUES -(1, 1, 'A', 'Saisie, interprétation et mise en œuvre des exigences des applications', NULL), -(2, 1, 'B', 'Développement d’applications en tenant compte des caractéristiques de qualité', NULL), -(3, 1, 'C', 'Création et maintenance de données ainsi que de leurs structures ', NULL), -(4, 1, 'D', ' Mise en service d’appareils TIC', NULL), -(5, 1, 'E', 'Travail sur des projets', NULL), -(6, 2, 'AA', 'Mise en service d’appareils TIC', NULL), -(7, 2, 'B', 'Mise en service de serveurs et réseaux', NULL), -(8, 2, 'C', 'Garantie de l’exploitation TIC ', NULL), -(9, 2, 'D', 'Assistance aux utilisateurs', NULL), -(10, 2, 'E', 'Développement d’applications en tenant compte des caractéristiques de qualité', NULL), -(11, 2, 'F', 'Travaux dans le cadre de projets', NULL), -(12, 3, 'A', 'Mise en service d’appareils TIC', NULL), -(13, 3, 'B', 'Planification, installation, et configuration des réseaux', NULL), -(14, 3, 'C', 'Planification, installation, et configuration des serveurs', NULL), -(15, 3, 'D', 'Maintenance de réseaux et serveurs', NULL), -(16, 3, 'E', 'Travail sur des projets', NULL), -(17, 4, 'A', 'Installation, mise en service et maintenance de terminaux ICT utilisateurs', NULL), -(18, 4, 'B', 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau', NULL), -(19, 4, 'C', 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT', NULL), -(20, 4, 'D', 'Déroulement de travaux de support ICT', NULL), -(21, 1, 'XXX', 'TEST1', NULL); - --- -------------------------------------------------------- - --- --- Structure de la table `course_plan` --- - -CREATE TABLE `course_plan` ( - `id` int(11) NOT NULL, - `formation_number` varchar(5) NOT NULL, - `official_name` varchar(100) NOT NULL, - `date_begin` date NOT NULL, - `archive` timestamp NULL DEFAULT current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `course_plan` --- - -INSERT INTO `course_plan` (`id`, `formation_number`, `official_name`, `date_begin`, `archive`) VALUES -(1, '88601', ' Informaticien/-ne CFC Développement d\'applications', '2014-08-01', NULL), -(2, '88602', ' Informaticien/-ne CFC Informatique d\'entreprise', '2014-08-01', NULL), -(3, '88603', ' Informaticien/-ne CFC Technique des systèmes', '2014-08-01', NULL), -(4, '88605', ' Opératrice en informatique / Opérateur en informatique CFC', '2018-08-01', NULL); - --- -------------------------------------------------------- - --- --- Structure de la table `objective` --- - -CREATE TABLE `objective` ( - `id` int(11) NOT NULL, - `fk_operational_competence` int(11) NOT NULL, - `symbol` varchar(10) NOT NULL, - `taxonomy` int(5) NOT NULL, - `name` varchar(350) NOT NULL, - `archive` timestamp NULL DEFAULT current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `objective` --- - -INSERT INTO `objective` (`id`, `fk_operational_competence`, `symbol`, `taxonomy`, `name`, `archive`) VALUES -(1, 1, 'A.1.1', 4, 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences', NULL), -(2, 1, 'A.1.2', 4, ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)', NULL), -(3, 1, 'A.1.3', 3, 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)', NULL), -(4, 1, 'A.1.4', 4, 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences', NULL), -(5, 1, 'A.1.5', 4, 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite', NULL), -(6, 2, 'A.2.1', 4, 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))', NULL), -(7, 2, 'A.2.2', 4, 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles', NULL), -(8, 2, 'A.2.3', 4, 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation', NULL), -(9, 3, 'A.3.1', 4, 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie', NULL), -(10, 3, 'A.3.2', 3, 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application', NULL), -(11, 3, 'A.3.3', 3, 'Obtenir la confirmation et la distribution du mandat du client', NULL), -(12, 4, 'B.1.1', 5, 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', NULL), -(13, 4, 'B.1.2', 5, 'Appliquer des méthodes pour la détermination de cas de tests', NULL), -(14, 4, 'B.1.3', 3, 'Mettre à disposition, sauvegarder et documenter les données des tests', NULL), -(15, 4, 'B.1.4', 3, 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', NULL), -(16, 4, 'B.1.5', 3, 'Saisir les résultats dans un protocole de tests en vue d’une répétition', NULL), -(17, 4, 'B.1.6', 4, 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', NULL), -(18, 4, 'B.1.7', 4, 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', NULL), -(19, 5, 'B.2.1', 4, 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)', NULL), -(20, 5, 'B.2.2', 4, 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)', NULL), -(21, 5, 'B.2.3', 3, 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité', NULL), -(22, 5, 'B.2.4', 3, 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions', NULL), -(23, 6, 'B.3.1', 4, 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ', NULL), -(24, 6, 'B.3.2', 4, 'Evaluation des modes de déroulement et des applications appropriées', NULL), -(25, 6, 'B.3.3', 4, 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue', NULL), -(26, 6, 'B.3.4', 3, 'Utiliser des standards et processus de développement', NULL), -(27, 6, 'B.3.5', 3, 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns', NULL), -(28, 6, 'B.3.6', 3, 'Respecter la convention des codes', NULL), -(29, 6, 'B.3.7', 3, 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', NULL), -(30, 6, 'B.3.8', 3, 'Tester l’application et tout documenter', NULL), -(31, 7, 'B.4.1', 4, 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', NULL), -(32, 7, 'B.4.2', 3, 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', NULL), -(33, 7, 'B.4.3', 3, 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', NULL), -(34, 7, 'B.4.4', 3, 'Codage GUI convivial, séparation des éléments utilisateurs du code', NULL), -(35, 7, 'B.4.5', 3, 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', NULL), -(36, 7, 'B.4.6', 3, 'Tester l’application de manière exhaustive et tout documenter', NULL), -(37, 8, 'B.5.1', 3, 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout', NULL), -(38, 8, 'B.5.2', 3, 'Respecter les standards', NULL), -(39, 8, 'B.5.3', 4, 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation', NULL), -(40, 8, 'B.5.4', 4, 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité', NULL), -(41, 9, 'B.6.1', 4, 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin', NULL), -(42, 9, 'B.6.2', 3, 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires', NULL), -(43, 9, 'B.6.3', 3, 'Préparer la remise de la production', NULL), -(44, 9, 'B.6.4', 3, 'Organiser en temps voulu l’instruction et l’information des utilisateurs', NULL), -(45, 10, 'C.1.1', 4, 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)', NULL), -(46, 10, 'C.1.2', 4, 'Décrire des entités et déterminer des types de données', NULL), -(47, 10, 'C.1.3', 4, 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)', NULL), -(48, 10, 'C.1.4', 4, 'Formuler des données adéquates de test (tenir compte des conditions limites)', NULL), -(49, 11, 'C.2.1', 4, 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', NULL), -(50, 11, 'C.2.2', 4, 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', NULL), -(51, 11, 'C.2.3', 4, 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', NULL), -(52, 11, 'C.2.4', 3, 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', NULL), -(53, 11, 'C.2.5', 4, 'Planifier et exécuter la migration de données', NULL), -(54, 12, 'C.3.1', 3, 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', NULL), -(55, 12, 'C.3.2', 4, 'Appliquer le concept de transaction et programmer l’accès aux données', NULL), -(56, 12, 'C.3.3', 4, 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', NULL), -(57, 12, 'C.3.4', 4, 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', NULL), -(58, 13, 'D.1.1', 3, 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises', NULL), -(59, 14, 'E.1.1', 4, 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail', NULL), -(60, 14, 'E.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), -(61, 14, 'E.1.3', 3, 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail', NULL), -(62, 14, 'E.1.4', 4, 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter', NULL), -(63, 14, 'E.1.5', 3, 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards', NULL), -(64, 14, 'E.1.6', 4, 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique', NULL), -(65, 14, 'E.1.7', 3, 'Assurer la remontée des données du client, des tests et systèmes, etc', NULL), -(66, 15, 'E.2.1', 3, 'Présenter les méthodes de gestion de projets de l’entreprise', NULL), -(67, 15, 'E.2.2', 4, 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources', NULL), -(68, 15, 'E.2.3', 3, 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter', NULL), -(69, 15, 'E.2.4', 3, 'Présenter et démontrer des solutions', NULL), -(70, 15, 'E.2.5', 4, 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)', NULL), -(71, 15, 'E.2.6', 4, 'Refléter le travail du projet et assurer le transfert des connaissances', NULL), -(72, 16, 'E.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), -(73, 16, 'E.3.2', 5, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), -(74, 17, 'A.1.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', NULL), -(75, 17, 'A.1.2', 4, 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires', NULL), -(76, 17, 'A.1.3', 3, 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), -(77, 17, 'A.1.4', 3, 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', NULL), -(78, 17, 'A.1.5', 3, 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', NULL), -(79, 17, 'A.1.6', 3, 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', NULL), -(80, 17, 'A.1.7', 6, 'Contrôle des fonctions et remise au client (test final et protocole de remise)', NULL), -(81, 18, 'A.2.1', 4, 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)', NULL), -(82, 18, 'A.2.2', 4, 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur', NULL), -(83, 18, 'A.2.3', 3, 'Acquérir le matériel, les logiciels et les licences', NULL), -(84, 18, 'A.2.4', 3, 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données', NULL), -(85, 18, 'A.2.5', 3, 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation', NULL), -(86, 19, 'A.3.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), -(87, 19, 'A.3.2', 4, 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur', NULL), -(88, 19, 'A.3.3', 3, 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)', NULL), -(89, 19, 'A.3.4', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), -(90, 19, 'A.3.5', 3, 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils', NULL), -(91, 20, 'B.1.1', 4, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', NULL), -(92, 20, 'B.1.2', 3, 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), -(93, 20, 'B.1.3', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), -(94, 21, 'B.2.1', 4, 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', NULL), -(95, 21, 'B.2.2', 4, 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', NULL), -(96, 21, 'B.2.3', 3, 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', NULL), -(97, 21, 'B.2.4', 3, 'Visualiser et documenter les réseaux et leur topologie', NULL), -(98, 22, 'B.3.1', 4, 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', NULL), -(99, 22, 'B.3.2', 4, 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie', NULL), -(100, 22, 'B.3.3', 3, 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', NULL), -(101, 22, 'B.3.4', 3, 'Tester, valider et exécuter la restauration des données, documenter le travail', NULL), -(102, 23, 'C.1.1', 3, 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', NULL), -(103, 23, 'C.1.2', 3, 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', NULL), -(104, 23, 'C.1.3', 4, 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', NULL), -(105, 23, 'C.1.4', 3, 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', NULL), -(106, 23, 'C.1.5', 3, 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', NULL), -(107, 24, 'C.2.1', 3, 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', NULL), -(108, 24, 'C.2.2', 3, 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', NULL), -(109, 24, 'C.2.3', 3, 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', NULL), -(110, 24, 'C.2.4', 3, 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', NULL), -(111, 24, 'C.2.5', 3, 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes', NULL), -(112, 25, 'C.3.1', 4, 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), -(113, 25, 'C.3.2', 4, 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', NULL), -(114, 25, 'C.3.3', 3, 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', NULL), -(115, 25, 'C.3.4', 3, 'Tester et documenter la fonctionnalité', NULL), -(116, 26, 'C.4.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), -(117, 26, 'C.4.2', 4, 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', NULL), -(118, 26, 'C.4.3', 3, 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', NULL), -(119, 26, 'C.4.4', 3, 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', NULL), -(120, 27, 'D.1.1', 4, 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils', NULL), -(121, 27, 'D.1.2', 3, 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)', NULL), -(122, 27, 'D.1.3', 3, 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité', NULL), -(123, 27, 'D.1.4', 3, 'Elaborer la documentation pour les utilisateurs', NULL), -(124, 28, 'D.2.1', 3, 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème', NULL), -(125, 28, 'D.2.2', 3, 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques', NULL), -(126, 28, 'D.2.3', 3, 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils', NULL), -(127, 28, 'D.2.4', 3, 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité', NULL), -(128, 29, 'E.1.1', 3, 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', NULL), -(129, 29, 'E.1.2', 4, 'Appliquer des méthodes pour la détermination de cas de tests', NULL), -(130, 29, 'E.1.3', 3, 'Mettre à disposition, sauvegarder et documenter les données des tests', NULL), -(131, 29, 'E.1.4', 3, 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', NULL), -(132, 29, 'E.1.5', 3, 'Saisir les résultats dans un protocole de tests en vue d’une répétition', NULL), -(133, 29, 'E.1.6', 3, 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', NULL), -(134, 29, 'E.1.7', 3, 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', NULL), -(135, 30, 'E.2.1', 4, 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc', NULL), -(136, 30, 'E.2.2', 4, 'Evaluation des modes de déroulement et des applications appropriées', NULL), -(137, 30, 'E.2.3', 4, 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue', NULL), -(138, 30, 'E.2.4', 3, 'Utiliser des standards et processus de développement', NULL), -(139, 30, 'E.2.5', 3, 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns', NULL), -(140, 30, 'E.2.6', 3, 'Respecter la convention des codes', NULL), -(141, 30, 'E.2.7', 3, 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', NULL), -(142, 30, 'E.2.8', 3, 'Tester l’application et tout documenter', NULL), -(143, 31, 'E.3.1', 4, 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', NULL), -(144, 31, 'E.3.2', 3, 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', NULL), -(145, 31, 'E.3.3', 3, 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', NULL), -(146, 31, 'E.3.4', 3, 'Codage GUI convivial, séparation des éléments utilisateurs du code', NULL), -(147, 31, 'E.3.5', 3, 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', NULL), -(148, 31, 'E.3.6', 3, 'Tester l’application de manière exhaustive et tout documenter', NULL), -(149, 32, 'E.4.1', 4, 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', NULL), -(150, 32, 'E.4.2', 3, 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', NULL), -(151, 32, 'E.4.3', 3, 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', NULL), -(152, 32, 'E.4.4', 3, 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', NULL), -(153, 32, 'E.4.5', 4, 'Planifier et exécuter la migration de données', NULL), -(154, 33, 'E.5.1', 3, 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', NULL), -(155, 33, 'E.5.2', 3, 'Appliquer le concept de transaction et programmer l’accès aux données', NULL), -(156, 33, 'E.5.3', 3, 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', NULL), -(157, 33, 'E.5.4', 4, 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', NULL), -(158, 34, 'F.1.1', 3, 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', NULL), -(159, 34, 'F.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), -(160, 34, 'F.1.3', 3, 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', NULL), -(161, 34, 'F.1.4', 3, 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', NULL), -(162, 34, 'F.1.5', 3, 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', NULL), -(163, 34, 'F.1.6', 3, 'Remettre l’installation et faire signer le protocole de remise au client', NULL), -(164, 34, 'F.1.7', 3, 'Instruire les utilisateurs sur les modifications de leurs applications', NULL), -(165, 35, 'F.2.1', 4, 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', NULL), -(166, 35, 'F.2.2', 3, 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', NULL), -(167, 35, 'F.2.3', 3, 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', NULL), -(168, 35, 'F.2.4', 3, 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', NULL), -(169, 35, 'F.2.5', 3, 'Mettre à disposition des collègues ses propres expériences issues du projet', NULL), -(170, 36, 'F.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), -(171, 36, 'F.3.2', 3, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), -(177, 42, 'A.1.1', 4, 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', NULL), -(178, 42, 'A.1.2', 4, 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur', NULL), -(179, 42, 'A.1.3', 3, 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), -(180, 42, 'A.1.4', 3, 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', NULL), -(181, 42, 'A.1.5', 3, 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', NULL), -(182, 42, 'A.1.6', 3, 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', NULL), -(183, 42, 'A.1.7', 3, 'Contrôle des fonctions et remise au client (test final et protocole de remise)', NULL), -(184, 42, 'A.1.8', 4, 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)', NULL), -(185, 43, 'A.2.1', 4, 'Accueillir le mandat du client et planifier la mise en œuvre\r\n(organisation, méthodes de travail, optimisation de l’énergie)', NULL), -(186, 43, 'A.2.2', 4, 'Choisir le matériel et logiciels appropriés en tenant compte\r\ndes directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur', NULL), -(187, 43, 'A.2.3', 4, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', NULL), -(188, 43, 'A.2.4', 3, 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', NULL), -(189, 43, 'A.2.5', 3, 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', NULL), -(190, 44, 'A.3.1', 4, 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', NULL), -(191, 44, 'A.3.2', 4, 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur', NULL), -(192, 44, 'A.3.3', 3, 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau', NULL), -(193, 44, 'A.3.4', 3, ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats', NULL), -(194, 45, 'B.1.1', 4, 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', NULL), -(195, 45, 'B.1.2', 4, 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', NULL), -(196, 45, 'B.1.3', 3, 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', NULL), -(197, 45, 'B.1.4', 3, 'Visualiser et documenter les réseaux et leur topologie', NULL), -(198, 46, 'B.2.1', 3, 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement', NULL), -(199, 46, 'B.2.2', 3, 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre', NULL), -(200, 46, 'B.2.3', 3, 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités', NULL), -(201, 46, 'B.2.4', 3, 'Documenter la solution et élaborer le mode d’emploi utilisateurs', NULL), -(202, 47, 'B.3.1', 5, 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)', NULL), -(203, 47, 'B.3.2', 5, 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration', NULL), -(204, 47, 'B.3.3', 3, 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité', NULL), -(205, 48, 'B.4.1', 5, 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement', NULL), -(206, 48, 'B.4.2', 5, 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup', NULL), -(207, 48, 'B.4.3', 3, 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats', NULL), -(208, 49, 'C.1.1', 4, 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', NULL), -(209, 49, 'C.1.2', 4, 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', NULL), -(210, 49, 'C.1.3', 3, 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', NULL), -(211, 49, 'C.1.4', 3, 'Tester et documenter la fonctionnalité', NULL), -(212, 50, 'C.2.1', 5, 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', NULL), -(213, 50, 'C.2.2', 4, 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès', NULL), -(214, 50, 'C.2.3', 3, 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus', NULL), -(215, 50, 'C.2.4', 3, 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation', NULL), -(216, 51, 'C.3.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), -(217, 51, 'C.3.2', 4, 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', NULL), -(218, 51, 'C.3.3', 3, 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', NULL), -(219, 51, 'C.3.4', 3, 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', NULL), -(220, 52, 'C.4.1', 5, 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', NULL), -(221, 52, 'C.4.2', 4, 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie', NULL), -(222, 52, 'C.4.3', 3, 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', NULL), -(223, 52, 'C.4.4', 3, 'Tester, valider et exécuter la restauration des données, documenter le travail', NULL), -(224, 53, 'C.5.1', 4, 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', NULL), -(225, 53, 'C.5.2', 4, 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès', NULL), -(226, 53, 'C.5.3', 3, 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité', NULL), -(227, 53, 'C.5.4', 3, 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests', NULL), -(228, 54, 'D.1.1', 3, 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', NULL), -(229, 54, 'D.1.2', 3, 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', NULL), -(230, 54, 'D.1.3', 5, 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', NULL), -(231, 54, 'D.1.4', 3, 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', NULL), -(232, 54, 'D.1.5', 3, 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', NULL), -(233, 54, 'D.1.6', 3, 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats', NULL), -(234, 55, 'D.2.1', 3, 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', NULL), -(235, 55, 'D.2.2', 3, 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', NULL), -(236, 55, 'D.2.3', 3, 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', NULL), -(237, 55, 'D.2.4', 3, 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', NULL), -(238, 55, 'D.2.5', 3, 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ', NULL), -(239, 56, 'D.3.1', 3, 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité', NULL), -(240, 56, 'D.3.2', 3, 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils', NULL), -(241, 56, 'D.3.3', 3, 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes', NULL), -(242, 56, 'D.3.4', 3, 'Informer et instruire les utilisateurs', NULL), -(243, 57, 'D.4.1', 3, 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte', NULL), -(244, 57, 'D.4.2', 4, 'Développer une solution et la présenter au supérieur ou à l’utilisateur', NULL), -(245, 57, 'D.4.3', 3, 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)', NULL), -(246, 57, 'D.4.4', 3, 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités', NULL), -(247, 58, 'D.5.1', 4, 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres', NULL), -(248, 58, 'D.5.2', 4, 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution', NULL), -(249, 58, 'D.5.3', 3, 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités', NULL), -(250, 58, 'D.5.4', 3, 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci', NULL), -(251, 58, 'D.5.5', 3, 'Informer les utilisateurs selon les besoins', NULL), -(252, 59, 'E.1.1', 3, 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', NULL), -(253, 59, 'E.1.2', 3, 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', NULL), -(254, 59, 'E.1.3', 3, 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', NULL), -(255, 59, 'E.1.4', 3, 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', NULL), -(256, 59, 'E.1.5', 3, 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', NULL), -(257, 59, 'E.1.6', 3, 'Remettre l’installation et faire signer le protocole de remise au client', NULL), -(258, 59, 'E.1.7', 3, 'Instruire les utilisateurs sur les modifications de leurs applications', NULL), -(259, 59, 'E.1.8', 3, 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable', NULL), -(260, 60, 'E.2.1', 4, 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', NULL), -(261, 60, 'E.2.2', 3, 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', NULL), -(262, 60, 'E.2.3', 3, 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', NULL), -(263, 60, 'E.2.4', 3, 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', NULL), -(264, 60, 'E.2.5', 3, 'Mettre à disposition des collègues ses propres expériences issues du projet', NULL), -(265, 61, 'E.3.1', 3, 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', NULL), -(266, 61, 'E.3.2', 3, 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', NULL), -(267, 62, 'A.1.1', 2, 'Expliquent les tâches et fonctions des systèmes d’exploitation courants', NULL), -(268, 62, 'A.1.2', 4, 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte', NULL), -(269, 62, 'A.1.3', 3, 'Installent et configurent des appareils périphériques et leurs extensions', NULL), -(270, 62, 'A.1.4', 3, 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement', NULL), -(271, 62, 'A.1.5', 3, 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits', NULL), -(272, 62, 'A.1.6', 1, 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs', NULL), -(273, 62, 'A.1.7', 3, 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants', NULL), -(274, 62, 'A.1.8', 3, 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique', NULL), -(275, 63, 'A.2.1', 3, 'Installent et configurent des applications standards et les administrent', NULL), -(276, 63, 'A.2.2', 2, 'Actualisent les logiciels existants avec une version actuelle', NULL), -(277, 63, 'A.2.3', 3, 'Décrivent les diverses variantes de licences', NULL), -(278, 63, 'A.2.4', 3, 'Appliquent les processus de la gestion des licences', NULL), -(279, 64, 'A.3.1', 4, 'Exécutent des tests de fonctions selon directives et évaluent les résultats', NULL), -(280, 64, 'A.3.2', 3, 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres', NULL), -(281, 64, 'A.3.3', 4, 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude', NULL), -(282, 65, 'A.4.1', 3, 'Appliquent des scripts et contrôlent leur exécution', NULL), -(283, 65, 'A.4.2', 4, 'Entreprennent des adaptations sur la fonctionnalité du script', NULL), -(284, 65, 'A.4.3', 3, 'Programment des scripts simples selon directives', NULL), -(285, 66, 'B.1.1', 2, 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)', NULL), -(286, 66, 'B.1.2', 4, 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant', NULL), -(287, 66, 'B.1.3', 4, 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte', NULL), -(288, 66, 'B.1.4', 2, 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud', NULL), -(289, 67, 'B.2.1', 3, 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur', NULL), -(290, 67, 'B.2.2', 2, 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions', NULL), -(291, 67, 'B.2.3', 4, 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte', NULL), -(292, 67, 'B.2.4', 3, 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)', NULL), -(293, 68, 'B.3.1', 2, 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT', NULL), -(294, 68, 'B.3.2', 3, 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel', NULL), -(295, 68, 'B.3.3', 3, 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise', NULL), -(296, 68, 'B.3.4', 3, 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation', NULL), -(297, 68, 'B.3.5', 3, 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs', NULL), -(298, 69, 'C.1.1', 3, 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique', NULL), -(299, 69, 'C.1.2', 2, 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution', NULL), -(300, 69, 'C.1.3', 3, 'Appliquent les logiciels appropriés pour la réalisation de présentations', NULL), -(301, 69, 'C.1.4', 3, 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations', NULL), -(302, 69, 'C.1.5', 3, 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)', NULL), -(303, 70, 'C.2.1', 3, 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits', NULL), -(304, 70, 'C.2.2', 3, 'Appliquent des directives et modèles de documentation de l‘entreprise', NULL), -(305, 70, 'C.2.3', 3, 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires', NULL), -(306, 70, 'C.2.4', 4, 'Trient l’indispensable du superflu et fixent les bonnes priorités', NULL), -(307, 70, 'C.2.5', 3, 'Élaborent des modes d’emploi compréhensibles et clairement structurés', NULL), -(308, 70, 'C.2.6', 3, 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace', NULL), -(309, 70, 'C.2.7', 3, 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation', NULL), -(310, 71, 'C.3.1', 3, 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition', NULL), -(311, 71, 'C.3.2', 3, 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée', NULL), -(312, 71, 'C.3.3', 4, 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent', NULL), -(313, 71, 'C.3.4', 3, 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient', NULL), -(314, 71, 'C.3.5', 3, 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)', NULL), -(315, 72, 'D.1.1', 2, 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème', NULL), -(316, 72, 'D.1.2', 4, 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte', NULL), -(317, 72, 'D.1.3', 3, 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement', NULL), -(318, 72, 'D.1.4', 3, 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions', NULL), -(319, 72, 'D.1.5', 3, 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux', NULL), -(320, 72, 'D.1.6', 2, 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes', NULL), -(321, 72, 'D.1.7', 3, 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients', NULL), -(322, 73, 'D.2.1', 3, 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée', NULL), -(323, 73, 'D.2.2', 3, 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe', NULL), -(324, 73, 'D.2.3', 3, 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe', NULL), -(325, 73, 'D.2.4', 2, 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe', NULL), -(326, 73, 'D.2.5', 2, 'Décrivent les causes et la dynamique des conflits', NULL), -(327, 73, 'D.2.6', 4, 'Décèlent à temps les situations de conflits et prend les mesures en conséquence', NULL), -(328, 74, 'D.3.1', 3, 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive', NULL), -(329, 74, 'D.3.2', 2, 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos', NULL), -(330, 74, 'D.3.3', 3, 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail', NULL); -INSERT INTO `objective` (`id`, `fk_operational_competence`, `symbol`, `taxonomy`, `name`, `archive`) VALUES -(331, 74, 'D.3.4', 3, 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes', NULL), -(332, 74, 'D.3.5', 3, 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers', NULL); - --- -------------------------------------------------------- - --- --- Structure de la table `operational_competence` --- - -CREATE TABLE `operational_competence` ( - `id` int(11) NOT NULL, - `fk_competence_domain` int(11) NOT NULL, - `name` varchar(150) DEFAULT NULL, - `symbol` varchar(10) NOT NULL, - `methodologic` text DEFAULT NULL, - `social` text DEFAULT NULL, - `personal` text DEFAULT NULL, - `archive` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `operational_competence` --- - -INSERT INTO `operational_competence` (`id`, `fk_competence_domain`, `name`, `symbol`, `methodologic`, `social`, `personal`, `archive`) VALUES -(1, 1, 'Analyser, structurer et documenter les exigences ainsi que les besoins', 'A1', 'Travail structuré, documentation adéquate', 'Comprendre et sentir les problèmes du client, communication avec des partenaires', 'Fiabilité, autoréflexion, interrogation constructive du problème', '2021-05-11 08:16:49'), -(2, 1, 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises', 'A2', 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision', 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau', 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions', '2021-05-11 08:16:49'), -(3, 1, 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies', 'A3', 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration', '', 'Précision dans le travail', '2021-05-11 08:16:49'), -(4, 2, 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', 'B1', '', 'Capacité de critique mutuelle', 'Développer préventivement, estimer les conséquences', '2021-05-11 08:16:49'), -(5, 2, 'Mettre en œuvre des directives d’architecture dans un projet concret', 'B2', '', '', 'Capacités d’abstraction', '2021-05-11 08:16:49'), -(6, 2, 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement', 'B3', 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau', 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant', 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide', '2021-05-11 08:16:49'), -(7, 2, 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet', 'B4', 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices', 'Travail en groupe, empathie', 'Capacités innovatrices, créativité', '2021-05-11 08:16:49'), -(8, 2, 'Garantir la qualité des applications', 'B5', 'Travail reproductible, description propres des versions de l‘application, gestion de projets', 'Capacité de critiques et de conflits, empathie', 'Vérification autocritique des résultats, méticulosité', '2021-05-11 08:16:49'), -(9, 2, 'Préparer et mettre en œuvre l’introduction des applications', 'B6', 'Gestion de projets', 'Capacités de communication, travail en réseau, déroulement sensible', 'Conscience de la responsabilité', '2021-05-11 08:16:49'), -(10, 3, 'Identifier et analyser des données, puis développer avec des modèles de données appropriés', 'C1', 'Déroulement structuré, comportement avec des outils de présentation, développement itératif', 'Communication avec des clients, travail en groupe', 'Précision, abstraction, remise en question critique', '2021-05-11 08:16:49'), -(11, 3, 'Mettre en œuvre un modèle de données dans une base de données', 'C2', '', '', 'Capacité d’abstraction', '2021-05-11 08:16:49'), -(12, 3, 'Accéder à des données à partir d’applications avec un langage approprié', 'C3', '', '', '', '2021-05-11 08:16:49'), -(13, 4, 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau', 'D1', 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement', 'Orientation client, communication écrite et orale', 'Autoréflexion critique', '2021-05-11 08:16:49'), -(14, 5, 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', 'E1', 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', '2021-05-11 08:16:49'), -(15, 5, 'Collaborer à des projets et travailler selon des méthodes de projets', 'E2', 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes', 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs', 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion', '2021-05-11 08:16:49'), -(16, 5, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'E3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise\r\n', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', '2021-05-11 08:16:49'), -(17, 6, 'Evaluer et mettre en service une place de travail utilisateur', 'A1', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), -(18, 6, 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs', 'A2', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale, comportement convivial avec le client', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), -(19, 6, 'Connecter et configurer des appareils périphériques', 'A3', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale, langage adapté au client', 'Conscience de la responsabilité, fiabilité, autoréflexion critique', '2021-05-11 08:16:49'), -(20, 7, 'Mettre en service des systèmes serveurs', 'B1', 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', 'Orientation client, communication écrite et orale', 'Autoréflexion critique', '2021-05-11 08:16:49'), -(21, 7, 'Installer des réseaux et leurs topologies', 'B2', 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision', 'Faire des entretiens professionnels en anglais', 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction', '2021-05-11 08:16:49'), -(22, 7, 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage', 'B3', 'Actions préventives', 'Conseil', 'Penser et travailler de manière disciplinée, comportement dans les situations de stress', '2021-05-11 08:16:49'), -(23, 8, 'Assurer la maintenance de réseaux et les développer', 'C1', 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', '', 'Précision, fiable, actions attentives', '2021-05-11 08:16:49'), -(24, 8, 'Assurer la maintenance et administrer des serveurs', 'C2', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)', 'Travail en groupe, entretien professionnel en anglais', 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline', '2021-05-11 08:16:49'), -(25, 8, 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', 'C3', 'Techniques d’interrogation', 'Empathie', 'Comprendre et interpréter des documents anglais', '2021-05-11 08:16:49'), -(26, 8, 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)', 'C4', 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique', 'Travailler en groupe', 'Travail patient et auto-critique, sens de la qualité, autoreflexion', '2021-05-11 08:16:49'), -(27, 9, 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques', 'D1', 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide', 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', '2021-05-11 08:16:49'), -(28, 9, 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place', 'D2', 'Techniques d’interrogation, déroulement structuré, travailler selon checklist', 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', '2021-05-11 08:16:49'), -(29, 10, 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', 'E1', '', 'Capacité de critique mutuelle', 'Développer préventivement, estimer les conséquences', '2021-05-11 08:16:49'), -(30, 10, 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement', 'E2', 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau', 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant', 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide', '2021-05-11 08:16:49'), -(31, 10, 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client', 'E3', 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes', 'Travail en groupe, empathie', 'Capacité d’innovation, créativité', '2021-05-11 08:16:49'), -(32, 10, 'Mettre en œuvre des modèles de données dans une base de données', 'E4', '', '', 'Capacité d’abstraction', '2021-05-11 08:16:49'), -(33, 10, 'Accéder à des données à partir d’applications avec un langage approprié', 'E5', '', '', '', '2021-05-11 08:16:49'), -(34, 11, 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace', 'F1', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', '2021-05-11 08:16:49'), -(35, 11, 'Collaborer à des projets', 'F2', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet', '2021-05-11 08:16:49'), -(36, 11, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'F3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', '2021-05-11 08:16:49'), -(42, 12, 'Choisir et mettre en service une place de travail utilisateur', 'A1', 'Analyse des valeurs utiles, déroulement systématique,\r\nfaire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', 'Orientation client, communication écrite et orale.', 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.', '2021-05-11 08:16:49'), -(43, 12, 'Choisir et mettre en service des systèmes serveurs', 'A2', 'Analyse des valeurs utiles, déroulement systématique, faire des\r\nchecklists, travail durable (économiquement, écologiquement,\r\nsocialement).', 'Orientation client, communication écrite et orale.', 'Auto-réflexion critique.', '2021-05-11 08:16:49'), -(44, 12, 'Choisir des composants réseau et les mettre en service', 'A3', 'Analyse des valeurs utiles, déroulement systématique, faire des\r\nchecklists, technique commerciale, méthode durable de travail\r\n(économiquement, écologiquement, socialement).', 'Communication écrite et orale, empathie, travail en groupe,\r\nlangage adapté au public cible.', 'Auto-réflexion critique, capacités d‘abstraction.', '2021-05-11 08:16:49'), -(45, 13, 'Planifier et installer des réseaux ainsi que leur topologie', 'B1', 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.', 'Faire des entretiens professionnels en anglais.', 'Méthode précise de travail, conscience de la responsabilité,\r\ncapacités d’abstraction.', '2021-05-11 08:16:49'), -(46, 13, 'Planifier et assurer la sécurité réseau ainsi que l’accès distant', 'B2', 'Déroulement analytique, principe de Pareto.', 'Reconnaître et classer les besoins en sécurité du client.', 'Travail précis, conscience de la responsabilité.', '2021-05-11 08:16:49'), -(47, 13, 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement', 'B3', 'Agir de manière préventive.', 'Conscience de la hiérarchie.', 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.', '2021-05-11 08:16:49'), -(48, 13, 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau', 'B4', 'Agir de manière préventive.', '', 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.', '2021-05-11 08:16:49'), -(49, 14, 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', 'C1', 'Techniques d’interrogation.', 'Empathie.', 'Comprendre et interpréter des documents anglais.', '2021-05-11 08:16:49'), -(50, 14, 'Mettre en service et configurer les services étendus des serveurs', 'C2', 'Techniques d‘entretiens, pensées préventive et systématique,\r\nconsidération globale, remise en question systématique.', 'Travail en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), -(51, 14, 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)', 'C3', 'Techniques d’entretien, pensée systématique et préventive,\r\nconsidération de l’ensemble, remise en question systématique.', 'Travailler en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), -(52, 14, 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage', 'C4', 'Actions préventives.', 'Conseil.', 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.', '2021-05-11 08:16:49'), -(53, 14, 'Offrir des services via le réseau en prenant des mesures de sécurité', 'C5', 'Techniques d’entretien, pensée systématique et préventive,\r\nconsidération de l’ensemble, remise en question systématique.', 'Travailler en groupe.', 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), -(54, 15, 'Assurer la maintenance de réseaux et les développer', 'D1', 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', '', 'Précision, fiable, actions attentives.', '2021-05-11 08:16:49'), -(55, 15, 'Assurer la maintenance et administrer des serveurs', 'D2', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable\r\n(économiquement, écologiquement, socialement).', 'Travail en groupe, entretien professionnel en anglais.', 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.', '2021-05-11 08:16:49'), -(56, 15, 'Assurer la maintenance et administrer les équipements des utilisateurs', 'D3', 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.', 'Travail en groupe, comportement diplomatique avec les utilisateurs.', 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.', '2021-05-11 08:16:49'), -(57, 15, 'Enregistrer, standardiser et automatiser des processus TIC', 'D4', 'Déroulement structuré et orienté objectif, pensée et action préventive.', 'Conseil, comportement dans des situations de stress.', 'Penser et travailler de manière disciplinée.', '2021-05-11 08:16:49'), -(58, 15, 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications', 'D5', 'Pensée préventive.', 'Appliquer l’anglais oralement et par écrit.', 'Réflexion, discipline et capacité d‘endurance.', '2021-05-11 08:16:49'), -(59, 16, 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', 'E1', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.', '2021-05-11 08:16:49'), -(60, 16, 'Collaborer à des projets', 'E2', 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.', '2021-05-11 08:16:49'), -(61, 16, 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', 'E3', 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.', 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.', 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.', '2021-05-11 08:16:49'), -(62, 17, 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance', 'A1', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(63, 17, 'Installer et configurer des applications standard', 'A2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', '', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(64, 17, 'Exécuter et évaluer des tests de fonctionnalité', 'A3', 'Techniques de travail, comportement économique.', '', 'Autonomie et responsabilité.', '2021-05-11 08:16:49'), -(65, 17, 'Mettre en œuvre des scripts d’automatisation', 'A4', 'Techniques de travail, comportement économique.', '', 'Autonomie et responsabilité.', '2021-05-11 08:16:49'), -(66, 18, 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes', 'B1', 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(67, 18, 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes', 'B2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(68, 18, 'Assurer la sécurité des terminaux ICT utilisateurs', 'B3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', 'Capacité à communiquer.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(69, 19, 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT', 'C1', 'Techniques de travail, techniques de présentation, comportement économique.', 'Capacité à communiquer.', 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.', '2021-05-11 08:16:49'), -(70, 19, 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs', 'C2', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', 'Capacité à communiquer.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'), -(71, 19, 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT', 'C3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'), -(72, 20, 'Traiter les demandes des clients au 1er et 2e niveau du support', 'D1', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', '2021-05-11 08:16:49'), -(73, 20, 'Se comporter de manière adéquate avec les clients et l’équipe', 'D2', 'Techniques de travail, stratégies d’information et de communication.', 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.', 'Capacité à analyser sa pratique, autonomie et responsabilité.', '2021-05-11 08:16:49'), -(74, 20, 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets', 'D3', 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.', 'Capacité à communiquer, aptitude au travail en équipe.', 'Autonomie et responsabilité, flexibilité.', '2021-05-11 08:16:49'); - --- -------------------------------------------------------- - --- --- Structure de la table `trainer_apprentice` --- - -CREATE TABLE `trainer_apprentice` ( - `id` int(11) NOT NULL, - `fk_trainer` int(11) NOT NULL, - `fk_apprentice` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `trainer_apprentice` --- - -INSERT INTO `trainer_apprentice` (`id`, `fk_trainer`, `fk_apprentice`) VALUES -(1, 2, 4), -(5, 2, 4), -(4, 3, 4), -(2, 3, 5), -(3, 6, 7); - --- -------------------------------------------------------- - --- --- Structure de la table `user` --- - -CREATE TABLE `user` ( - `id` int(11) NOT NULL, - `fk_user_type` int(11) NOT NULL, - `username` varchar(45) COLLATE utf8_unicode_ci NOT NULL, - `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `archive` timestamp NULL DEFAULT current_timestamp(), - `date_creation` timestamp NOT NULL DEFAULT current_timestamp() -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; - --- --- Déchargement des données de la table `user` --- - -INSERT INTO `user` (`id`, `fk_user_type`, `username`, `password`, `archive`, `date_creation`) VALUES -(1, 1, 'admin', '$2y$10$tUB5R1MGgbO.zD//WArnceTY8IgnFkVVsudIdHBxIrEXJ2z3WBvcK', NULL, '2020-07-09 06:11:05'), -(2, 2, 'FormateurDev', '$2y$10$Q3H8WodgKonQ60SIcu.eWuVKXmxqBw1X5hMpZzwjRKyCTB1H1l.pe', NULL, '2020-07-09 11:15:24'), -(3, 2, 'FormateurSysteme', '$2y$10$v8qCvWlas8DvVkOxY6k4JufPAxFvJxYRLU0tMMbSJYNQjos27RHMK', NULL, '2020-07-09 11:15:47'), -(4, 3, 'ApprentiDev', '$2y$10$6TLaMd5ljshybxANKgIYGOjY0Xur9EgdzcEPy1bgy2b8uyWYeVoEm', NULL, '2020-07-09 11:16:05'), -(5, 3, 'ApprentiSysteme', '$2y$10$m..hDbyG41hMRak6Y/b/pO7n3bgy/V2mnATpRvWzrY2rXrXbm6nbi', NULL, '2020-07-09 11:16:27'), -(6, 2, 'FormateurOperateur', '$2y$10$SbMYPxqnngLjxVGlG4hW..lrc.pr5Dd74nY.KqdANtEESIvmGRpWi', NULL, '2020-07-09 11:24:22'), -(7, 3, 'ApprentiOperateur', '$2y$10$jPNxV2ZZ6Il2LiBQ.CWhNOoud6NsMRFILwHN8kpD410shWeiGpuxK', NULL, '2020-07-09 11:24:45'); - --- -------------------------------------------------------- - --- --- Structure de la table `user_course` --- - -CREATE TABLE `user_course` ( - `id` int(11) NOT NULL, - `fk_user` int(11) NOT NULL, - `fk_course_plan` int(11) NOT NULL, - `fk_status` int(11) NOT NULL, - `date_begin` date NOT NULL, - `date_end` date NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `user_course` --- - -INSERT INTO `user_course` (`id`, `fk_user`, `fk_course_plan`, `fk_status`, `date_begin`, `date_end`) VALUES -(1, 4, 1, 1, '2020-07-09', '0000-00-00'), -(2, 5, 3, 1, '2020-07-09', '0000-00-00'), -(3, 7, 4, 1, '2020-07-09', '0000-00-00'), -(4, 5, 1, 1, '2021-05-06', '2021-08-20'); - --- -------------------------------------------------------- - --- --- Structure de la table `user_course_status` --- - -CREATE TABLE `user_course_status` ( - `id` int(11) NOT NULL, - `name` varchar(20) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Déchargement des données de la table `user_course_status` --- - -INSERT INTO `user_course_status` (`id`, `name`) VALUES -(1, 'En cours'), -(2, 'Réussi'), -(3, 'Échouée'), -(4, 'Suspendue'), -(5, 'Abandonnée'); - --- -------------------------------------------------------- - --- --- Structure de la table `user_type` --- - -CREATE TABLE `user_type` ( - `id` int(11) NOT NULL, - `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL, - `access_level` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; - --- --- Déchargement des données de la table `user_type` --- - -INSERT INTO `user_type` (`id`, `name`, `access_level`) VALUES -(1, 'Administrateur', 4), -(2, 'Formateur', 2), -(3, 'Apprenti', 1); - --- --- Index pour les tables déchargées --- - --- --- Index pour la table `acquisition_level` --- -ALTER TABLE `acquisition_level` - ADD PRIMARY KEY (`id`); - --- --- Index pour la table `acquisition_status` --- -ALTER TABLE `acquisition_status` - ADD PRIMARY KEY (`id`), - ADD KEY `constraint_acquisition_statut_level` (`fk_acquisition_level`), - ADD KEY `constraint_objective_acquisition_statut` (`fk_objective`), - ADD KEY `constraint_user_acquisition_statut` (`fk_user_course`); - --- --- Index pour la table `ci_sessions` --- -ALTER TABLE `ci_sessions` - ADD KEY `ci_sessions_timestamp` (`timestamp`); - --- --- Index pour la table `comment` --- -ALTER TABLE `comment` - ADD PRIMARY KEY (`id`), - ADD KEY `fk_acquisition_status` (`fk_acquisition_status`), - ADD KEY `fk_trainer` (`fk_trainer`); - --- --- Index pour la table `competence_domain` --- -ALTER TABLE `competence_domain` - ADD PRIMARY KEY (`id`), - ADD KEY `constraint_competence_domain_course_plan` (`fk_course_plan`); - --- --- Index pour la table `course_plan` --- -ALTER TABLE `course_plan` - ADD PRIMARY KEY (`id`); - --- --- Index pour la table `objective` --- -ALTER TABLE `objective` - ADD PRIMARY KEY (`id`), - ADD KEY `constraint_operational_competence` (`fk_operational_competence`); - --- --- Index pour la table `operational_competence` --- -ALTER TABLE `operational_competence` - ADD PRIMARY KEY (`id`), - ADD KEY `constraint_domain_operational` (`fk_competence_domain`); - --- --- Index pour la table `trainer_apprentice` --- -ALTER TABLE `trainer_apprentice` - ADD PRIMARY KEY (`id`), - ADD KEY `fk_trainer` (`fk_trainer`,`fk_apprentice`), - ADD KEY `fk_apprentice` (`fk_apprentice`); - --- --- Index pour la table `user` --- -ALTER TABLE `user` - ADD PRIMARY KEY (`id`), - ADD KEY `fk_user_user_type1_idx` (`fk_user_type`); - --- --- Index pour la table `user_course` --- -ALTER TABLE `user_course` - ADD PRIMARY KEY (`id`), - ADD KEY `constraint_user` (`fk_user`), - ADD KEY `constraint_user_course_plan` (`fk_course_plan`), - ADD KEY `constraint_status` (`fk_status`); - --- --- Index pour la table `user_course_status` --- -ALTER TABLE `user_course_status` - ADD PRIMARY KEY (`id`); - --- --- Index pour la table `user_type` --- -ALTER TABLE `user_type` - ADD PRIMARY KEY (`id`); - --- --- AUTO_INCREMENT pour les tables déchargées --- - --- --- AUTO_INCREMENT pour la table `acquisition_status` --- -ALTER TABLE `acquisition_status` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=303; - --- --- AUTO_INCREMENT pour la table `comment` --- -ALTER TABLE `comment` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; - --- --- AUTO_INCREMENT pour la table `competence_domain` --- -ALTER TABLE `competence_domain` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22; - --- --- AUTO_INCREMENT pour la table `course_plan` --- -ALTER TABLE `course_plan` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; - --- --- AUTO_INCREMENT pour la table `objective` --- -ALTER TABLE `objective` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=333; - --- --- AUTO_INCREMENT pour la table `operational_competence` --- -ALTER TABLE `operational_competence` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=75; - --- --- AUTO_INCREMENT pour la table `trainer_apprentice` --- -ALTER TABLE `trainer_apprentice` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; - --- --- AUTO_INCREMENT pour la table `user` --- -ALTER TABLE `user` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; - --- --- AUTO_INCREMENT pour la table `user_course` --- -ALTER TABLE `user_course` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; - --- --- AUTO_INCREMENT pour la table `user_course_status` --- -ALTER TABLE `user_course_status` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; - --- --- AUTO_INCREMENT pour la table `user_type` --- -ALTER TABLE `user_type` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; - --- --- Contraintes pour les tables déchargées --- - --- --- Contraintes pour la table `acquisition_status` --- -ALTER TABLE `acquisition_status` - ADD CONSTRAINT `constraint_acquisition_statut_level` FOREIGN KEY (`fk_acquisition_level`) REFERENCES `acquisition_level` (`id`), - ADD CONSTRAINT `constraint_objective_acquisition_statut` FOREIGN KEY (`fk_objective`) REFERENCES `objective` (`id`), - ADD CONSTRAINT `constraint_user_acquisition_statut` FOREIGN KEY (`fk_user_course`) REFERENCES `user_course` (`id`); - --- --- Contraintes pour la table `comment` --- -ALTER TABLE `comment` - ADD CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`fk_acquisition_status`) REFERENCES `acquisition_status` (`id`), - ADD CONSTRAINT `comment_ibfk_2` FOREIGN KEY (`fk_trainer`) REFERENCES `user` (`id`); - --- --- Contraintes pour la table `competence_domain` --- -ALTER TABLE `competence_domain` - ADD CONSTRAINT `constraint_competence_domain_course_plan` FOREIGN KEY (`fk_course_plan`) REFERENCES `course_plan` (`id`); - --- --- Contraintes pour la table `objective` --- -ALTER TABLE `objective` - ADD CONSTRAINT `constraint_operational_competence` FOREIGN KEY (`fk_operational_competence`) REFERENCES `operational_competence` (`id`); - --- --- Contraintes pour la table `operational_competence` --- -ALTER TABLE `operational_competence` - ADD CONSTRAINT `constraint_domain_operational` FOREIGN KEY (`fk_competence_domain`) REFERENCES `competence_domain` (`id`); - --- --- Contraintes pour la table `trainer_apprentice` --- -ALTER TABLE `trainer_apprentice` - ADD CONSTRAINT `trainer_apprentice_ibfk_1` FOREIGN KEY (`fk_trainer`) REFERENCES `user` (`id`), - ADD CONSTRAINT `trainer_apprentice_ibfk_2` FOREIGN KEY (`fk_apprentice`) REFERENCES `user` (`id`); - --- --- Contraintes pour la table `user` --- -ALTER TABLE `user` - ADD CONSTRAINT `fk_user_user_type1` FOREIGN KEY (`fk_user_type`) REFERENCES `user_type` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; - --- --- Contraintes pour la table `user_course` --- -ALTER TABLE `user_course` - ADD CONSTRAINT `constraint_status` FOREIGN KEY (`fk_status`) REFERENCES `user_course_status` (`id`), - ADD CONSTRAINT `constraint_user` FOREIGN KEY (`fk_user`) REFERENCES `user` (`id`), - ADD CONSTRAINT `constraint_user_course_plan` FOREIGN KEY (`fk_course_plan`) REFERENCES `course_plan` (`id`); -COMMIT; - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From 3ddccf0601245e874aac43681b3d87ad0f120780 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Tue, 18 May 2021 13:12:51 +0200 Subject: [PATCH 035/172] Replace btn_add_m with btn_new_m in language file --- orif/common/Language/fr/common_lang.php | 1 - orif/plafor/Views/competence_domain/list.php | 2 +- orif/plafor/Views/course_plan/list.php | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 3cadfc29..063beeda 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -25,7 +25,6 @@ 'btn_add' => 'Ajouter', 'btn_new_m' => 'Nouveau', 'btn_new_f' => 'Nouvelle', - 'btn_add_m' => 'Nouveau', 'btn_details' => 'Détails', 'btn_update' => 'Modifier', 'btn_disable' => 'Désactiver', diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index a1e1d08e..83fe2967 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -17,7 +17,7 @@ diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index cb3feb90..5c0bd14c 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -16,7 +16,7 @@ From 36a49fbe462f5bc1955cd4bd39af2c6723bcd4db Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Tue, 18 May 2021 13:15:22 +0200 Subject: [PATCH 036/172] Replace btn_update with btn_edit in language file --- orif/common/Language/fr/common_lang.php | 2 +- orif/plafor/Views/competence_domain/list.php | 2 +- orif/plafor/Views/course_plan/list.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 063beeda..31a80987 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -26,7 +26,7 @@ 'btn_new_m' => 'Nouveau', 'btn_new_f' => 'Nouvelle', 'btn_details' => 'Détails', - 'btn_update' => 'Modifier', + 'btn_edit ' => 'Modifier', 'btn_disable' => 'Désactiver', // Other common texts diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index 83fe2967..cf2f6ad3 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -36,7 +36,7 @@ - + × diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index 5c0bd14c..6bcd37d8 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -35,7 +35,7 @@ - + × From 2a75a012b81bd48795400e4f46b6cef29bab9337 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 14:20:37 +0200 Subject: [PATCH 037/172] added script to active links --- orif/plafor/Views/templates/admin_menu.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Views/templates/admin_menu.php b/orif/plafor/Views/templates/admin_menu.php index dde1da79..182f6e2e 100644 --- a/orif/plafor/Views/templates/admin_menu.php +++ b/orif/plafor/Views/templates/admin_menu.php @@ -2,7 +2,7 @@
-
\ No newline at end of file +
+ + \ No newline at end of file From e834935d8a790f3169ecde2deed90b15e420867b Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 14:20:56 +0200 Subject: [PATCH 038/172] updated common_lang --- orif/common/Language/fr/common_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 31a80987..03516f6f 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -26,7 +26,7 @@ 'btn_new_m' => 'Nouveau', 'btn_new_f' => 'Nouvelle', 'btn_details' => 'Détails', - 'btn_edit ' => 'Modifier', + 'btn_edit' => 'Modifier', 'btn_disable' => 'Désactiver', // Other common texts From 864c53456c6abaf505980b7c5f8723ef0bf60191 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 18 May 2021 14:21:56 +0200 Subject: [PATCH 039/172] added verification to evaluate $apprentices and $userCourseStatus --- orif/plafor/Views/course_plan/delete.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Views/course_plan/delete.php b/orif/plafor/Views/course_plan/delete.php index a8aad6f2..d8411940 100644 --- a/orif/plafor/Views/course_plan/delete.php +++ b/orif/plafor/Views/course_plan/delete.php @@ -17,12 +17,13 @@
- 0){?> + 0&&isset($apprentices[0])&&$apprentices[0]!=null){?>

- 0){?> + 0&&isset($userCourseStatus[0])&&$userCourseStatus[0]!=null){?>

From 54087f64d45df7d07322ccef682eaff48ed2f4ca Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 20 May 2021 10:08:15 +0200 Subject: [PATCH 040/172] updated save_course_plan function and added list_operational_competence, save_competence_domain, delete_competence_domain --- orif/plafor/Controllers/Admin.php | 126 ++++++++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 7 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 13c5df34..23b44e3a 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -4,6 +4,7 @@ namespace Plafor\Controllers; +use CodeIgniter\Validation\Validation; use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; use Plafor\Models\ObjectiveModel; @@ -17,7 +18,7 @@ class Admin extends \App\Controllers\BaseController { - private $validation; + private Validation $validation; public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { $this->access_level=config('\User\Config\UserConfig')->access_lvl_admin; @@ -67,8 +68,6 @@ public function list_course_plan($id_apprentice = null) */ public function save_course_plan($course_plan_id = 0) { - $coursePlanModel=new CoursePlanModel(); - if (count($_POST) > 0) { $course_plan_id = $this->request->getPost('id'); $rules = array( @@ -92,9 +91,9 @@ public function save_course_plan($course_plan_id = 0) 'date_begin' => $this->request->getPost('date_begin') ); if ($course_plan_id > 0) { - $coursePlanModel->update($course_plan_id, $course_plan); + CoursePlanModel::getInstance()->update($course_plan_id, $course_plan); } else { - $coursePlanModel->insert($course_plan); + CoursePlanModel::getInstance()->insert($course_plan); } return redirect()->to(base_url('/plafor/admin/list_course_plan')); } @@ -102,7 +101,7 @@ public function save_course_plan($course_plan_id = 0) $output = array( 'title' => lang('user_lang.title_course_plan_'.((bool)$course_plan_id ? 'update' : 'new')), - 'course_plan' => $coursePlanModel->find($course_plan_id) + 'course_plan' => CoursePlanModel::getInstance()->find($course_plan_id) ); $this->display_view('\Plafor\course_plan\save', $output); @@ -194,5 +193,118 @@ public function list_competence_domain($id_course_plan = null) $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); } - + /** + * Displays the list of course plans + * + * @return void + */ + public function list_operational_competence($id_competence_domain = null) + { + if($id_competence_domain == null){ + $operational_competences = OperationalCompetenceModel::getInstance()->findAll(); + }else{ + $competence_domain = CompetenceDomainModel::getInstance()->find($id_competence_domain); + $operational_competences = CompetenceDomainModel::getOperationalCompetences($id_competence_domain); + } + + $output = array( + 'operational_competences' => $operational_competences + ); + + if(is_numeric($id_competence_domain)){ + $output[] = ['competence_domain' => $competence_domain]; + } + + $this->display_view(['\Plafor\templates\admin_menu','\Plafor/operational_competence/list'], $output); + } + /** + * Adds or modify a course plan + * + * @param integer $competence_domain_id = The id of the course plan to modify, leave blank to create a new one + * @return void + */ + public function save_competence_domain($competence_domain_id = 0) + { + if (count($_POST) > 0) { + $competence_domain_id = $this->request->getPost('id'); + $rules = array( + array( + 'symbol'=>[ + 'label' => 'user_lang.field_competence_domain_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' + ] + ), + array( + 'name'=>[ + 'label' => 'user_lang.field_competence_domain_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->COMPETENCE_DOMAIN_NAME_MAX_LENGTH.']' + ] + ) + ); + $this->validation->setRules($rules); + if ($this->validation->withRequest($this->request)->run()) { + $competence_domain = array( + 'symbol' => $this->request->getPost('symbol'), + 'name' => $this->request->getPost('name'), + 'fk_course_plan' => $this->request->getPost('course_plan') + ); + if ($competence_domain_id > 0) { + CompetenceDomainModel::getInstance()->update($competence_domain_id, $competence_domain); + } else { + CompetenceDomainModel::getInstance()->insert($competence_domain); + } + return redirect()->to(base_url('plafor/admin/list_competence_domain')); + } + } + + $output = array( + 'title' => lang('user_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), + 'competence_domain' => CompetenceDomainModel::getInstance()->find($competence_domain_id), + 'course_plans' => CoursePlanModel::getInstance()->findColumn('official_name') + ); + + $this->display_view('\Plafor\competence_domain/save', $output); + } + /** + * Deletes a course plan depending on $action + * + * @param integer $competence_domain_id = ID of the competence_domain to affect + * @param integer $action = Action to apply on the course plan: + * - 0 for displaying the confirmation + * - 1 for deactivating (soft delete) + * - 2 for deleting (hard delete) + * @return void + */ + public function delete_competence_domain($competence_domain_id, $action = 0) + { + $competence_domain = CompetenceDomainModel::getInstance()->find($competence_domain_id); + if (is_null($competence_domain)) { + return redirect()->to('plafor/admin/competence_domain/list'); + } + + switch($action) { + case 0: // Display confirmation + $output = array( + 'competence_domain' => $competence_domain, + 'title' => lang('user_lang.title_competence_domain_delete') + ); + $this->display_view('\Plafor/competence_domain/delete', $output); + break; + case 1: // Deactivate (soft delete) competence domain + + foreach (CompetenceDomainModel::getOperationalCompetences($competence_domain_id) as $operational_competence){ + $operationalCompetenceIds[] = $operational_competence['id']; + } + + $operationalCompetenceId = implode(',',$operationalCompetenceIds); + + ObjectiveModel::getInstance()->whereIn('fk_operational_competence',$operationalCompetenceIds)->delete(); + OperationalCompetenceModel::getInstance()->where('fk_competence_domain',$competence_domain_id)->delete(); + CompetenceDomainModel::getInstance()->delete($competence_domain_id); + return redirect()->to(base_url('plafor/admin/list_competence_domain')); + break; + default: // Do nothing + return redirect()->to(base_url('plafor/admin/list_competence_domain')); + } + } } \ No newline at end of file From ea89a680a4a01dae1db06dd174484e30529a3322 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 20 May 2021 10:10:05 +0200 Subject: [PATCH 041/172] added function view_competence_domain --- orif/plafor/Controllers/Apprentice.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 8fb3e46c..a639eb09 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -30,6 +30,7 @@ public function initController(\CodeIgniter\HTTP\RequestInterface $request, \Cod */ public function view_course_plan($course_plan_id = null) { + $course_plan = CoursePlanModel::getInstance()->find($course_plan_id); $competence_domains=CoursePlanModel::getCompetenceDomains($course_plan_id); if($course_plan == null){ @@ -93,4 +94,26 @@ public function view_apprentice($apprentice_id = null) exit();*/ $this->display_view('Plafor\apprentice/view',$output); } + /** + * Show details of the selected competence domain + * + * @param int (SQL PRIMARY KEY) $competence_domain_id + * + */ + public function view_competence_domain($competence_domain_id = null) + { + $competence_domain = CompetenceDomainModel::getInstance()->find($competence_domain_id); + + if($competence_domain == null){ + return redirect()->to(base_url('admin/list_competence_domain')); + } + + $output = array( + 'course_plan' =>CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']) + , + 'competence_domain' => $competence_domain, + ); + + $this->display_view('\Plafor/competence_domain/view',$output); + } } \ No newline at end of file From 4f923c841fb64fff14a79cbcd86dfba74f490be9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 20 May 2021 10:10:49 +0200 Subject: [PATCH 042/172] added session variable type --- app/Controllers/BaseController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 372fbae0..7767aa32 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -9,6 +9,7 @@ namespace App\Controllers; use CodeIgniter\Controller; +use CodeIgniter\Session\Session; /** * Class BaseController @@ -33,6 +34,7 @@ class BaseController extends Controller * @var array */ protected $helpers = []; + protected Session $session; /** * Limit the accessibility to the entire controller. From f3edbe7e78ebf6cffc2e555055fef2959c96153a Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 20 May 2021 10:11:24 +0200 Subject: [PATCH 043/172] added views and updated --- .../plafor/Views/competence_domain/delete.php | 15 +-- orif/plafor/Views/competence_domain/list.php | 10 +- orif/plafor/Views/competence_domain/save.php | 37 ++++--- orif/plafor/Views/competence_domain/view.php | 32 +++--- orif/plafor/Views/course_plan/save.php | 6 +- .../Views/operational_competence/delete.php | 23 +++++ .../Views/operational_competence/list.php | 57 +++++++++++ .../Views/operational_competence/save.php | 98 +++++++++++++++++++ .../Views/operational_competence/view.php | 77 +++++++++++++++ 9 files changed, 309 insertions(+), 46 deletions(-) create mode 100644 orif/plafor/Views/operational_competence/delete.php create mode 100644 orif/plafor/Views/operational_competence/list.php create mode 100644 orif/plafor/Views/operational_competence/save.php create mode 100644 orif/plafor/Views/operational_competence/view.php diff --git a/orif/plafor/Views/competence_domain/delete.php b/orif/plafor/Views/competence_domain/delete.php index 7e1eea2a..d1c13f5d 100644 --- a/orif/plafor/Views/competence_domain/delete.php +++ b/orif/plafor/Views/competence_domain/delete.php @@ -1,20 +1,21 @@ -
-

name.'"' ?>

-

-
+

+

+
diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index cf2f6ad3..32283ca1 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -16,7 +16,7 @@
'); ?> + getErrors())){ + echo '
'.$validation->getErrors().'
'; + } + ?>
- 'form-label']); ?> + 'form-label']); ?>
- fk_course_plan ?? '','id="course_plan" class="form-control"')?> +
- 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
@@ -59,8 +66,8 @@
- - 'btn btn-primary']); ?> + + 'btn btn-primary']); ?>
diff --git a/orif/plafor/Views/competence_domain/view.php b/orif/plafor/Views/competence_domain/view.php index 807bd6c7..9b7350a6 100644 --- a/orif/plafor/Views/competence_domain/view.php +++ b/orif/plafor/Views/competence_domain/view.php @@ -1,47 +1,47 @@
-

lang->line('details_course_plan')?>

+

-

lang->line('field_course_plan_formation_number')?>

- formation_number?> +

+
-

lang->line('field_course_plan_official_name')?>

- official_name?> +

+
-

lang->line('details_competence_domain')?>

+

-

lang->line('field_competence_domain_symbol')?>

-

symbol?>

+

+

-

lang->line('field_competence_domain_name')?>

-

name?>

+

+

-

lang->line('field_linked_operational_competences')?>

+

- - + + operational_competences as $operational_competence){ + foreach (\Plafor\Models\CompetenceDomainModel::getOperationalCompetences($competence_domain['id']) as $operational_competence){ ?> - - +
lang->line('field_operational_competences_symbols')?>lang->line('field_operational_competences_names')?>
symbol?>name?>
diff --git a/orif/plafor/Views/course_plan/save.php b/orif/plafor/Views/course_plan/save.php index a9a46746..e15b2735 100644 --- a/orif/plafor/Views/course_plan/save.php +++ b/orif/plafor/Views/course_plan/save.php @@ -9,7 +9,7 @@ $data_formation_number = array( 'name' => 'formation_number', - 'value' => $course_plan_formation_number ?? $course_plan->formation_number ?? '', + 'value' => $course_plan_formation_number ?? $course_plan['formation_number'] ?? '', 'type' => 'number', 'max' => str_repeat('9',config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH), 'class' => 'form-control', @@ -18,7 +18,7 @@ $data_official_name = array( 'name' => 'official_name', - 'value' => $course_plan_official_name ?? $course_plan->official_name ?? '', + 'value' => $course_plan_official_name ?? $course_plan['official_name'] ?? '', 'maxlength' => config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH, 'class' => 'form-control', 'id' => 'course_plan_official_name' @@ -26,7 +26,7 @@ $data_date_begin = array( 'name' => 'date_begin', - 'value' => $course_plan_date_begin ?? $course_plan->date_begin ?? '', + 'value' => $course_plan_date_begin ?? $course_plan['date_begin'] ?? '', 'type' => 'date', 'class' => 'form-control', 'id' => 'course_plan_date_begin' ); diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php new file mode 100644 index 00000000..d9d38218 --- /dev/null +++ b/orif/plafor/Views/operational_competence/delete.php @@ -0,0 +1,23 @@ + +
+
+
+
+
+

name.'"' ?>

+

+
+
+ +
+
+
+
diff --git a/orif/plafor/Views/operational_competence/list.php b/orif/plafor/Views/operational_competence/list.php new file mode 100644 index 00000000..bfdcbd8e --- /dev/null +++ b/orif/plafor/Views/operational_competence/list.php @@ -0,0 +1,57 @@ + +
+
+
+

+
+
+
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
×
+
+
+ + diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php new file mode 100644 index 00000000..f05c897d --- /dev/null +++ b/orif/plafor/Views/operational_competence/save.php @@ -0,0 +1,98 @@ + + 'symbol', + 'value' => $operational_competence_symbol ?? $operational_competence->symbol ?? '', + 'max' => SYMBOL_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'operational_competence_symbol' + ); + + $data_name = array( + 'name' => 'name', + 'value' => $operational_competence_name ?? $operational_competence->name ?? '', + 'max' => OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'operational_competence_name' + ); + + $data_methodologic = array( + 'name' => 'methodologic', + 'value' => $operational_competence_methodologic ?? $operational_competence->methodologic ?? '', + 'max' => SQL_TEXT_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'operational_competence_methodologic' + ); + + $data_social = array( + 'name' => 'social', + 'value' => $operational_competence_social ?? $operational_competence->social ?? '', + 'max' => SQL_TEXT_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'operational_competence_social' + ); + + $data_personal = array( + 'name' => 'personal', + 'value' => $operational_competence_personal ?? $operational_competence->personal ?? '', + 'max' => SQL_TEXT_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'operational_competence_personal' + ); +?> +
+ +
+
+

+
+
+ + + 'operational_competence_form', + 'name' => 'operational_competence_form' + ); + echo form_open('admin/save_operational_competence', $attributes, [ + 'id' => $operational_competence->id ?? 0 + ]); + ?> + + + ', '
'); ?> + + +
+
+ 'form-label']); ?> +
+ fk_competence_domain ?? '','id="competence_domain" class="form-control"')?> +
+
+ 'form-label']); ?> + + 'form-label']); ?> + + 'form-label']); ?> + + 'form-label']); ?> + + 'form-label']); ?> + +
+
+ + +
+
+ + 'btn btn-primary']); ?> +
+
+ +
diff --git a/orif/plafor/Views/operational_competence/view.php b/orif/plafor/Views/operational_competence/view.php new file mode 100644 index 00000000..e0fdea22 --- /dev/null +++ b/orif/plafor/Views/operational_competence/view.php @@ -0,0 +1,77 @@ +
+
+
+

lang->line('details_course_plan')?>

+
+
+

lang->line('field_course_plan_formation_number')?>

+ formation_number?> +
+
+

lang->line('field_course_plan_official_name')?>

+ official_name?> +
+
+
+
+

lang->line('details_competence_domain')?>

+
+
+

lang->line('field_competence_domain_symbol')?>

+ symbol?> +
+
+

lang->line('field_competence_domain_name')?>

+ name?> +
+
+
+
+

lang->line('details_operational_competence')?>

+
+
+

lang->line('field_operational_competence_symbol')?>

+

symbol?>

+
+
+

lang->line('field_operational_competence_name')?>

+

name?>

+
+
+

lang->line('field_operational_competence_methodologic')?>

+

methodologic?>

+
+
+

lang->line('field_operational_competence_social')?>

+

social?>

+
+
+

lang->line('field_operational_competence_personal')?>

+

personal?>

+
+
+
+
+

lang->line('field_linked_objectives')?>

+
+
+ + + + + + + + + objectives as $objective){ + ?> + + + + +
lang->line('field_objectives_symbols')?>lang->line('field_objectives_taxonomies')?>lang->line('field_objectives_names')?>
symbol?>taxonomy?>name?>
+
+
+
\ No newline at end of file From a322348c2bdc6008b521caa35951f55495890bf4 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 21 May 2021 12:33:36 +0200 Subject: [PATCH 044/172] MODIFY VALIDATION RULES and added id coursepans array index and test if objectives are linked --- orif/plafor/Controllers/Admin.php | 117 +++++++++++++++++++++++++++--- 1 file changed, 106 insertions(+), 11 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 23b44e3a..49b2b75d 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -216,6 +216,7 @@ public function list_operational_competence($id_competence_domain = null) } $this->display_view(['\Plafor\templates\admin_menu','\Plafor/operational_competence/list'], $output); + exit(); } /** * Adds or modify a course plan @@ -228,18 +229,14 @@ public function save_competence_domain($competence_domain_id = 0) if (count($_POST) > 0) { $competence_domain_id = $this->request->getPost('id'); $rules = array( - array( 'symbol'=>[ 'label' => 'user_lang.field_competence_domain_symbol', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' - ] - ), - array( + ], 'name'=>[ 'label' => 'user_lang.field_competence_domain_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->COMPETENCE_DOMAIN_NAME_MAX_LENGTH.']' - ] - ) + ], ); $this->validation->setRules($rules); if ($this->validation->withRequest($this->request)->run()) { @@ -251,16 +248,19 @@ public function save_competence_domain($competence_domain_id = 0) if ($competence_domain_id > 0) { CompetenceDomainModel::getInstance()->update($competence_domain_id, $competence_domain); } else { + var_dump($competence_domain); CompetenceDomainModel::getInstance()->insert($competence_domain); } return redirect()->to(base_url('plafor/admin/list_competence_domain')); } } - + $course_plans=null; + foreach (CoursePlanModel::getInstance()->findColumn('official_name') as $courseplanOfficialName) + $course_plans[CoursePlanModel::getInstance()->where('official_name',$courseplanOfficialName)->first()['id']]=$courseplanOfficialName; $output = array( 'title' => lang('user_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), 'competence_domain' => CompetenceDomainModel::getInstance()->find($competence_domain_id), - 'course_plans' => CoursePlanModel::getInstance()->findColumn('official_name') + 'course_plans' => $course_plans ); $this->display_view('\Plafor\competence_domain/save', $output); @@ -291,13 +291,12 @@ public function delete_competence_domain($competence_domain_id, $action = 0) $this->display_view('\Plafor/competence_domain/delete', $output); break; case 1: // Deactivate (soft delete) competence domain - + $operationalCompetenceIds=[]; foreach (CompetenceDomainModel::getOperationalCompetences($competence_domain_id) as $operational_competence){ $operationalCompetenceIds[] = $operational_competence['id']; } - $operationalCompetenceId = implode(',',$operationalCompetenceIds); - + if (count($operationalCompetenceIds)) ObjectiveModel::getInstance()->whereIn('fk_operational_competence',$operationalCompetenceIds)->delete(); OperationalCompetenceModel::getInstance()->where('fk_competence_domain',$competence_domain_id)->delete(); CompetenceDomainModel::getInstance()->delete($competence_domain_id); @@ -307,4 +306,100 @@ public function delete_competence_domain($competence_domain_id, $action = 0) return redirect()->to(base_url('plafor/admin/list_competence_domain')); } } + /** + * Adds or modify a course plan + * + * @param integer $operational_competence_id = The id of the course plan to modify, leave blank to create a new one + * @return void + */ + public function save_operational_competence($operational_competence_id = 0) + { + if (count($_POST) > 0) { + $operational_competence_id = $this->request->getPost('id'); + $rules = array( + 'symbol'=>[ + 'label' => 'user_lang.field_operational_competence_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' + ], + 'name'=>[ + 'label' => 'user_lang.field_operational_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH.']' + ], + 'methodologic'=>[ + 'label' => 'user_lang.field_operational_methodologic', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + 'social'=>[ + 'label' => 'user_lang.field_operational_social', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + 'personal'=>[ + 'label' => 'user_lang.field_operational_personal', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + ); + $this->validation->setRules($rules); + if ($this->validation->withRequest($this->request)->run()) { + $operational_competence = array( + 'symbol' => $this->request->getPost('symbol'), + 'name' => $this->request->getPost('name'), + 'methodologic' => $this->request->getPost('methodologic'), + 'social' => $this->request->getPost('social'), + 'personal' => $this->request->getPost('personal'), + 'fk_competence_domain' => $this->request->getPost('competence_domain') + ); + if ($operational_competence_id > 0) { + OperationalCompetenceModel::getInstance()->update($operational_competence_id, $operational_competence); + } else { + OperationalCompetenceModel::getInstance()->insert($operational_competence); + } + return redirect()->to(base_url('plafor/admin/list_operational_competence')); + } + } + $competenceDomains=[]; + + foreach (CompetenceDomainModel::getInstance()->findAll() as $competenceDomain) + $competenceDomains[CompetenceDomainModel::getInstance()->where('id',$competenceDomain['id'])->first()['id']]=$competenceDomain['name']; + $output = array( + 'title' => lang('user_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), + 'operational_competence' => OperationalCompetenceModel::getInstance()->find($operational_competence_id), + 'competence_domains' => $competenceDomains + ); + + $this->display_view('\Plafor\operational_competence/save', $output); + } + /** + * Deletes a course plan depending on $action + * + * @param integer $operational_competence_id = ID of the operational_competence to affect + * @param integer $action = Action to apply on the course plan: + * - 0 for displaying the confirmation + * - 1 for deactivating (soft delete) + * - 2 for deleting (hard delete) + * @return void + */ + public function delete_operational_competence($operational_competence_id, $action = 0) + { + $operational_competence = OperationalCompetenceModel::getInstance()->find($operational_competence_id); + if (is_null($operational_competence)) { + return redirect()->to(base_url('plafor/admin/list_operational_competence')); + } + switch($action) { + case 0: // Display confirmation + $output = array( + 'operational_competence' => $operational_competence, + 'title' => lang('user_lang.title_operational_competence_delete') + ); + $this->display_view('\Plafor\operational_competence/delete', $output); + break; + case 1: // Deactivate (soft delete) operational competence + ObjectiveModel::getInstance()->where('fk_operational_competence',$operational_competence_id)->delete(); + OperationalCompetenceModel::getInstance()->delete($operational_competence_id, FALSE); + return redirect()->to(base_url('plafor/admin/list_operational_competence')); + break; + default: // Do nothing + return redirect()->to(base_url('plafor/admin/list_operational_competence')); + break; + } + } } \ No newline at end of file From b7ad7811ea783831225ad54b6cd8d17283af44d6 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 21 May 2021 12:34:07 +0200 Subject: [PATCH 045/172] updated view to language of ci4 --- .../plafor/Views/operational_competence/delete.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php index d9d38218..5e08277d 100644 --- a/orif/plafor/Views/operational_competence/delete.php +++ b/orif/plafor/Views/operational_competence/delete.php @@ -1,20 +1,20 @@ -
-

name.'"' ?>

-

-
+

+

+
From 4897d76e44ea3dece0a8f07c76dc867a6c270461 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 21 May 2021 12:35:05 +0200 Subject: [PATCH 046/172] updated link of save operational_competence --- orif/plafor/Views/operational_competence/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Views/operational_competence/list.php b/orif/plafor/Views/operational_competence/list.php index bfdcbd8e..634d2a41 100644 --- a/orif/plafor/Views/operational_competence/list.php +++ b/orif/plafor/Views/operational_competence/list.php @@ -15,7 +15,7 @@
From 580c860676ba322d32eb0f3fcb755216335156a5 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 21 May 2021 12:35:36 +0200 Subject: [PATCH 047/172] added error list conform to ci4 --- orif/plafor/Views/competence_domain/save.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php index b9fe425b..f38684fe 100644 --- a/orif/plafor/Views/competence_domain/save.php +++ b/orif/plafor/Views/competence_domain/save.php @@ -43,9 +43,11 @@ getErrors())){ - echo '
'.$validation->getErrors().'
'; + echo count($validation->getErrors())>0?'
':null; + foreach ($validation->getErrors() as $error){ + echo $error; } + echo count($validation->getErrors())>0?'
':null; ?> From fbe36de5f6a1aaf31007e46b507796b612038b37 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 21 May 2021 12:38:08 +0200 Subject: [PATCH 048/172] added error list conform to ci4 --- .../Views/operational_competence/save.php | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index f05c897d..708e915e 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -1,5 +1,7 @@ - 'symbol', 'value' => $operational_competence_symbol ?? $operational_competence->symbol ?? '', - 'max' => SYMBOL_MAX_LENGTH, + 'max' => config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_symbol' ); $data_name = array( 'name' => 'name', - 'value' => $operational_competence_name ?? $operational_competence->name ?? '', - 'max' => OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH, + 'value' => $operational_competence_name ?? $operational_competence['name'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_name' ); $data_methodologic = array( 'name' => 'methodologic', - 'value' => $operational_competence_methodologic ?? $operational_competence->methodologic ?? '', - 'max' => SQL_TEXT_MAX_LENGTH, + 'value' => $operational_competence_methodologic ?? $operational_competence['methodologic'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_methodologic' ); $data_social = array( 'name' => 'social', - 'value' => $operational_competence_social ?? $operational_competence->social ?? '', - 'max' => SQL_TEXT_MAX_LENGTH, + 'value' => $operational_competence_social ?? $operational_competence['social'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_social' ); $data_personal = array( 'name' => 'personal', - 'value' => $operational_competence_personal ?? $operational_competence->personal ?? '', - 'max' => SQL_TEXT_MAX_LENGTH, + 'value' => $operational_competence_personal ?? $operational_competence['personal'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_personal' ); @@ -48,7 +50,7 @@
-

+

@@ -58,31 +60,36 @@ 'id' => 'operational_competence_form', 'name' => 'operational_competence_form' ); - echo form_open('admin/save_operational_competence', $attributes, [ - 'id' => $operational_competence->id ?? 0 + echo form_open('plafor/admin/save_operational_competence', $attributes, [ + 'id' => $operational_competence['id'] ?? 0 ]); ?> - ', '
'); ?> + getErrors())>0?'
':null; + foreach ($validation->getErrors() as $error) + echo $error; + echo count($validation->getErrors())>0?'
':null; + ?>
- 'form-label']); ?> + 'form-label']); ?>
- fk_competence_domain ?? '','id="competence_domain" class="form-control"')?> +
- 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
@@ -90,8 +97,8 @@
- - 'btn btn-primary']); ?> + + 'btn btn-primary']); ?>
From 488ecfd98ea4ed02e525f7f21b0da3ea04ccdc7b Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:30:49 +0200 Subject: [PATCH 049/172] added functions delete_apprentice_link, delete_user_course, list_objective --- orif/plafor/Controllers/Admin.php | 100 ++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 49b2b75d..d055fa64 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -402,4 +402,104 @@ public function delete_operational_competence($operational_competence_id, $actio break; } } + /** + * Deletes a trainer_apprentice link depending on $action + * + * @param integer $link_id = ID of the trainer_apprentice_link to affect + * @param integer $action = Action to apply on the trainer_apprentice link : + * - 0 for displaying the confirmation + * - 1 for deleting (hard delete) + * @return void + */ + public function delete_apprentice_link($link_id, $action = 0){ + $link = TrainerApprenticeModel::getInstance()->find($link_id); + $apprentice = TrainerApprenticeModel::getApprentice($link['fk_apprentice']); + $trainer = TrainerApprenticeModel::getTrainer($link['fk_trainer']); + if (is_null($link)) { + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + + switch($action) { + case 0: // Display confirmation + $output = array( + 'link' => $link, + 'apprentice' => $apprentice, + 'trainer' => $trainer, + 'title' => lang('user_lang.title_apprentice_link_delete') + ); + $this->display_view('\Plafor\apprentice/delete', $output); + break; + case 1: // Delete apprentice link + TrainerApprenticeModel::getInstance()->delete($link_id, TRUE); + return redirect()->to(base_url('plafor/apprentice/list_apprentice/'.$apprentice['id'])); + default: // Do nothing + return redirect()->to(base_url('plafor/apprentice/list_apprentice/'.$apprentice['id'])); + } + } + /** + * Deletes a user_course depending on $action + * + * @param integer $user_course_id = ID of the user_course to affect + * @param integer $action = Action to apply on the course plan: + * - 0 for displaying the confirmation + * - 1 for deleting (hard delete) + * @return void + */ + public function delete_user_course($user_course_id, $action = 0){ + $user_course = UserCourseModel::getInstance()->find($user_course_id); + $course_plan = CoursePlanModel::getInstance()->find($user_course['fk_course_plan']); + $apprentice = User_model::getInstance()->find($user_course['fk_user']); + $status = UserCourseStatusModel::getInstance()->find($user_course['fk_status']); + if (is_null($user_course)) { + //à faire vue + return redirect()->to(base_url('plafor/admin/user_course/list')); + } + + switch($action) { + case 0: // Display confirmation + $output = array( + 'user_course' => $user_course, + 'course_plan' => $course_plan, + 'apprentice' => $apprentice, + 'status' => $status, + 'title' => lang('title_user_course_delete') + ); + $this->display_view('Plafor\user_course/delete', $output); + break; + case 1: // Delete course plan + /**@todo delete course plan + * **/ + UserCourseModel::getInstance()->delete($user_course_id, false); + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + default: // Do nothing + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + } + /** + * Displays the list of course plans + * + * @return void + */ + public function list_objective($id_operational_competence = null,bool $with_archived=false) + { + $operational_competence=null; + if($id_operational_competence == null){ + $objectives = ObjectiveModel::getInstance()->findAll(); + }else{ + $operational_competence = OperationalCompetenceModel::getInstance()->find($id_operational_competence); + $objectives = OperationalCompetenceModel::getObjectives($operational_competence['id']); + } + + $output = array( + 'objectives' => $objectives, + 'with_archived' => $with_archived + ); + + if(is_numeric($id_operational_competence)){ + $output[] = ['operational_competence',$operational_competence]; + } + + $this->display_view(['Plafor\templates/admin_menu','Plafor\objective/list'], $output); + } + } \ No newline at end of file From 3520b829047077399fae5257c77e233a45e40a90 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:34:36 +0200 Subject: [PATCH 050/172] updated function list_apprentice to add array coursesList with index id of courseplan added array user_courses added array user_course_status added array course_plans added array trainers Added functions save_user_course, --- orif/plafor/Controllers/Apprentice.php | 139 +++++++++++++++++++++++-- 1 file changed, 128 insertions(+), 11 deletions(-) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index a639eb09..f2b2b48e 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -4,9 +4,11 @@ namespace Plafor\Controllers; +use CodeIgniter\Config\Services; +use CodeIgniter\Validation\Validation; +use Plafor\Models\AcquisitionStatusModel; use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; -use Plafor\Models\ObjectiveModel; use Plafor\Models\OperationalCompetenceModel; use Plafor\Models\UserCourseModel; use Plafor\Models\UserCourseStatusModel; @@ -17,10 +19,12 @@ class Apprentice extends \App\Controllers\BaseController { + private Validation $validation; public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { $this->access_level=config('\User\Config\UserConfig')->access_level_apprentice; parent::initController($request, $response, $logger); + $this->validation=Services::validation(); } /** * Show details of the selected course plan @@ -47,11 +51,14 @@ public function view_course_plan($course_plan_id = null) public function list_apprentice() { - + $intermediateList=[]; //if($trainer_id == null){ $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); - $coursesList = CoursePlanModel::getInstance()->findall(); + + $coursesList=[]; + foreach (CoursePlanModel::getInstance()->findall() as $courseplan) + $coursesList[$courseplan['id']]=$courseplan; $courses = UserCourseModel::getInstance()->findall(); //}else{ // $apprentices = $this->user_model->get_many_by(array('id' => $trainer_id)); @@ -74,13 +81,25 @@ public function view_apprentice($apprentice_id = null) if(is_null($apprentice) || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ return redirect()->to(base_url("/plafor/apprentice/list_apprentice")); } - - $user_courses = UserCourseModel::getInstance()->where('fk_user',$apprentice_id)->findall(); - $user_course_status = UserCourseStatusModel::getInstance()->findAll(); - $course_plans = CoursePlanModel::getInstance()->findall(); - - $trainers = User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name',lang('user_lang.title_trainer'))->first()['id'])->findall(); - $links = TrainerApprenticeModel::getInstance()->where('fk_apprentice',$apprentice_id)->findAll(); + $user_courses=[]; + foreach (UserCourseModel::getInstance()->where('fk_user',$apprentice_id)->findall() as $usercourse) + $user_courses[$usercourse['id']] = $usercourse ; + + $user_course_status=[]; + foreach (UserCourseStatusModel::getInstance()->findAll() as $usercoursetatus) + $user_course_status[$usercoursetatus['id']] = $usercoursetatus; + + $course_plans=[]; + foreach (CoursePlanModel::getInstance()->findall() as $courseplan) + $course_plans[$courseplan['id']] = $courseplan; + + $trainers = []; + foreach (User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name',lang('user_lang.title_trainer'))->first()['id'])->findall() as $trainer) + $trainers[$trainer['id']]= $trainer; + + $links = []; + foreach (TrainerApprenticeModel::getInstance()->where('fk_apprentice',$apprentice_id)->findAll() as $link) + $links[$link['id']]=$link; $output = array( 'apprentice' => $apprentice, @@ -114,6 +133,104 @@ public function view_competence_domain($competence_domain_id = null) 'competence_domain' => $competence_domain, ); - $this->display_view('\Plafor/competence_domain/view',$output); + return $this->display_view('\Plafor/competence_domain/view',$output); + } + /** + * Form to create a link between a apprentice and a course plan + * + * @param int (SQL PRIMARY KEY) $id_user_course + */ + public function save_user_course($id_apprentice = null,$id_user_course = 0){ + + $apprentice = User_model::getInstance()->find($id_apprentice); + $user_course = UserCourseModel::getInstance()->find($id_user_course); + + if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + exit(); + } + + if(count($_POST) > 0){ + $rules = array( + 'course_plan'=>[ + 'label' => 'user_lang.course_plan', + 'rules' => 'required|numeric', + ], + 'status'=>[ + 'label' => 'user_lang.status', + 'rules' => 'required|numeric', + ], + 'date_begin'=>[ + 'label' => 'user_lang.field_user_course_date_begin', + 'rules' => 'required', + ] + /* + array( + 'field' => 'date_end', + 'label' => 'lang:field_user_course_date_end', + 'rules' => 'required', + ), + */ + ); + + $this->validation->setRules($rules); + + if($this->validation->withRequest($this->request)->run()){ + $user_course = array( + 'fk_user' => $id_apprentice, + 'fk_course_plan' => $this->request->getPost('course_plan'), + 'fk_status' => $this->request->getPost('status'), + 'date_begin' => $this->request->getPost('date_begin'), + 'date_end' => $this->request->getPost('date_end'), + ); + + if($id_user_course > 0){ + echo UserCourseModel::getInstance()->update($id_user_course, $user_course); + }else{ + $id_user_course = UserCourseModel::getInstance()->insert($user_course); + + $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); + $competenceDomainIds=[]; + foreach (CoursePlanModel::getCompetenceDomains($course_plan['id']) as $competence_domain){ + $competenceDomainIds[] = $competence_domain['id']; + } + + $operational_competences = OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->findAll(); + $objectiveIds = array(); + foreach ($operational_competences as $operational_competence){ + foreach (OperationalCompetenceModel::getObjectives($operational_competence['id']) as $objective){ + $objectiveIds[] = $objective['id']; + } + } + foreach ($objectiveIds as $objectiveId){ + $acquisition_status = array( + 'fk_objective' => $objectiveId, + 'fk_user_course' => $id_user_course, + 'fk_acquisition_level' => 1 + ); + + AcquisitionStatusModel::getInstance()->insert($acquisition_status); + } + } + return redirect()->to(base_url('plafor/apprentice/view_apprentice/'.$id_apprentice)); + exit(); + } + } + $course_plans=[]; + foreach (CoursePlanModel::getInstance()->findAll() as $courseplan) + $course_plans[$courseplan['id']]=$courseplan['official_name']; + $status=[]; + foreach (UserCourseStatusModel::getInstance()->findAll() as $usercoursestatus) { + $status[$usercoursestatus['id']]=$usercoursestatus['name']; + } + $output = array( + 'title' => lang('user_course_title_course_plan_link'), + 'course_plans' => $course_plans, + 'user_course' => $user_course, + 'status' => $status, + 'apprentice' => $apprentice + ); + + $this->display_view('Plafor\user_course/save',$output); } } \ No newline at end of file From f1e6b7a97dad576b1e2e51f8ed8414cf43ceb824 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:35:17 +0200 Subject: [PATCH 051/172] added trad for 'btn_show_disabled' --- orif/common/Language/fr/common_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 03516f6f..9a8d3aea 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -28,7 +28,7 @@ 'btn_details' => 'Détails', 'btn_edit' => 'Modifier', 'btn_disable' => 'Désactiver', - + 'btn_show_disabled' => 'Afficher les éléments désactivés' , // Other common texts 'yes' => 'Oui', 'no' => 'Non' From 1259576d3af6bec565d243cb295b5c2e56a9e1f9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:35:42 +0200 Subject: [PATCH 052/172] updated view delete apprentice --- orif/plafor/Views/apprentice/delete.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 orif/plafor/Views/apprentice/delete.php diff --git a/orif/plafor/Views/apprentice/delete.php b/orif/plafor/Views/apprentice/delete.php new file mode 100644 index 00000000..74cec303 --- /dev/null +++ b/orif/plafor/Views/apprentice/delete.php @@ -0,0 +1,25 @@ + +
+
+
+
+
+

+

+

+

+
+
+ +
+
+
+
From 2ba5f502c5b1355fff25c84c84d874c6aef69e8f Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:36:28 +0200 Subject: [PATCH 053/172] updated view delete objective --- not ended --- orif/plafor/Views/objective/delete.php | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 orif/plafor/Views/objective/delete.php diff --git a/orif/plafor/Views/objective/delete.php b/orif/plafor/Views/objective/delete.php new file mode 100644 index 00000000..7b5abc9b --- /dev/null +++ b/orif/plafor/Views/objective/delete.php @@ -0,0 +1,28 @@ + +
+
+
+
+
+

+

+
+
+
+ + + + + + + + + + + +
+
+
+
+
From fa34b65b385fbc3952966430f3e57daf118be1d3 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:36:56 +0200 Subject: [PATCH 054/172] updated view delete user_course --- not ended --- orif/plafor/Views/user_course/delete.php | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 orif/plafor/Views/user_course/delete.php diff --git a/orif/plafor/Views/user_course/delete.php b/orif/plafor/Views/user_course/delete.php new file mode 100644 index 00000000..25982991 --- /dev/null +++ b/orif/plafor/Views/user_course/delete.php @@ -0,0 +1,25 @@ + +
+
+
+
+
+

username.'"' ?>

+

official_name.'"' ?>

+

name.'"' ?>

+

+
+
+ +
+
+
+
From ffc12658d6844dde2af7161a77d88c6fd9f8e4e9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:38:16 +0200 Subject: [PATCH 055/172] added view link to apprentice --- orif/plafor/Views/apprentice/link.php | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 orif/plafor/Views/apprentice/link.php diff --git a/orif/plafor/Views/apprentice/link.php b/orif/plafor/Views/apprentice/link.php new file mode 100644 index 00000000..e353d192 --- /dev/null +++ b/orif/plafor/Views/apprentice/link.php @@ -0,0 +1,57 @@ + + 'apprentice', + 'value' => $apprentice_id ?? $apprentice->id ?? '', + 'class' => 'form-control', + 'type' => 'hidden', + 'id' => 'apprentice' + ); +?> +
+ +
+
+

+
+
+ + + 'apprentice_link_form', + 'name' => 'apprentice_link_form' + ); + echo form_open('apprentice/save_apprentice_link/'.$apprentice->id, $attributes, [ + 'id' => $apprentice->id ?? 0 + ]); + ?> + + + ', '
'); ?> + + +
+
+ 'form-label']); ?> + +

username?>

+
+
+ 'form-label']); ?> +
+ id ?? '','id="trainer" class="form-control"')?> +
+ +
+
+ + 'btn btn-primary']); ?> +
+
+ +
From 7b170beea596f9cd8dd98575278b9a0aa91c43ab Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:38:47 +0200 Subject: [PATCH 056/172] updated view apprentice list --- orif/plafor/Views/apprentice/list.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index cdad1508..c2e2aa9d 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -1,4 +1,4 @@ - - @@ -50,4 +51,4 @@ }); }); }); - \ No newline at end of file + From 931d81d3c41a1f120af3daf0d716eb8493fde7f8 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:39:53 +0200 Subject: [PATCH 057/172] added views list, save and view to objective --- orif/plafor/Views/objective/list.php | 70 +++++++++++++++++++++++ orif/plafor/Views/objective/save.php | 83 ++++++++++++++++++++++++++++ orif/plafor/Views/objective/view.php | 70 +++++++++++++++++++++++ 3 files changed, 223 insertions(+) create mode 100644 orif/plafor/Views/objective/list.php create mode 100644 orif/plafor/Views/objective/save.php create mode 100644 orif/plafor/Views/objective/view.php diff --git a/orif/plafor/Views/objective/list.php b/orif/plafor/Views/objective/list.php new file mode 100644 index 00000000..7053adc0 --- /dev/null +++ b/orif/plafor/Views/objective/list.php @@ -0,0 +1,70 @@ + +
+
+
+

+
+
+
+ access_lvl_admin): ?> +
+ + + +
+ +
+ 'toggle_deleted', 'class' => 'form-check-input' + ]);?> + 'form-check-label']);?> +
+
+
+ + + + + + access_lvl_admin): ?> + + + + + + + + + + + access_lvl_admin): ?> + + + + + + +
×
+
+
+ + diff --git a/orif/plafor/Views/objective/save.php b/orif/plafor/Views/objective/save.php new file mode 100644 index 00000000..4a12daa6 --- /dev/null +++ b/orif/plafor/Views/objective/save.php @@ -0,0 +1,83 @@ + 'symbol', + 'value' => $objective_symbol ?? $objective->symbol ?? '', + 'max' => SYMBOL_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'objective_symbol' + ); + + $data_taxonomy = array( + 'name' => 'taxonomy', + 'value' => $objective_taxonomy ?? $objective->taxonomy ?? '', + 'type' => 'number', + 'max' => TAXONOMY_MAX_VALUE, + 'class' => 'form-control', + 'id' => 'objective_taxonomy' + ); + + $data_name = array( + 'name' => 'name', + 'value' => $objective_name ?? $objective->name ?? '', + 'max' => OBJECTIVE_NAME_MAX_LENGTH, + 'type' => 'text', + 'class' => 'form-control', 'id' => 'objective_name' + ); +?> +
+ +
+
+

+
+
+ + + 'objective_form', + 'name' => 'objective_form' + ); + echo form_open('admin/save_objective', $attributes, [ + 'id' => $objective->id ?? 0 + ]); + ?> + + + ', '
'); ?> + + +
+
+ 'form-label']); ?> +
+ fk_operational_competence ?? '','id="operational_competence" class="form-control"')?> +
+
+ 'form-label']); ?> + + 'form-label']); ?> + + 'form-label']); ?> + +
+
+ + +
+
+ + archive) { ?> + + + + + 'btn btn-primary']); ?> +
+
+ +
diff --git a/orif/plafor/Views/objective/view.php b/orif/plafor/Views/objective/view.php new file mode 100644 index 00000000..dd2b2e1b --- /dev/null +++ b/orif/plafor/Views/objective/view.php @@ -0,0 +1,70 @@ +
+
+
+

lang->line('details_course_plan')?>

+
+
+

lang->line('field_course_plan_formation_number')?>

+ formation_number?> +
+
+

lang->line('field_course_plan_official_name')?>

+ official_name?> +
+
+
+
+

lang->line('details_competence_domain')?>

+
+
+

lang->line('field_competence_domain_symbol')?>

+ symbol?> +
+
+

lang->line('field_competence_domain_name')?>

+ name?> +
+
+
+
+

lang->line('details_operational_competence')?>

+
+
+

lang->line('field_operational_competence_symbol')?>

+ symbol?> +
+
+

lang->line('field_operational_competence_name')?>

+ name?> +
+
+

lang->line('field_operational_competence_methodologic')?>

+ methodologic?> +
+
+

lang->line('field_operational_competence_social')?>

+ social?> +
+
+

lang->line('field_operational_competence_personal')?>

+ personal?> +
+
+
+
+

lang->line('details_objective')?>

+
+
+

lang->line('field_objective_symbol')?>

+

symbol?>

+
+
+

lang->line('field_objective_taxonomy')?>

+

taxonomy?>

+
+
+

lang->line('field_objective_name')?>

+

name?>

+
+
+
\ No newline at end of file From 2168c6db5882facf439fab09de810e62bfb62f5a Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:40:54 +0200 Subject: [PATCH 058/172] added view save to user_course --- orif/plafor/Views/user_course/save.php | 81 ++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 orif/plafor/Views/user_course/save.php diff --git a/orif/plafor/Views/user_course/save.php b/orif/plafor/Views/user_course/save.php new file mode 100644 index 00000000..b7918de4 --- /dev/null +++ b/orif/plafor/Views/user_course/save.php @@ -0,0 +1,81 @@ + + 'date_begin', + 'value' => $user_course_date_begin ?? $user_course['date_begin'] ?? date("Y-m-d"), + 'class' => 'form-control', + 'type' => 'date', + 'id' => 'user_course_date_begin' + ); + + $data_date_end = array( + 'name' => 'date_end', + 'value' => $user_course_date_end ?? $user_course['date_end'] ?? '', + 'class' => 'form-control', 'id' => 'competence_domain_name', + 'type' => 'date', + 'id' => 'user_course_date_begin' + ); +?> +
+ +
+
+

+
+
+ + + 'user_course_form', + 'name' => 'user_course_form' + ); + echo form_open('plafor/apprentice/save_user_course/'.$apprentice['id'], $attributes, [ + 'id' => $apprentice->id ?? 0 + ]); + ?> + + + getErrors())>0? '
':null; + foreach ($validation->getErrors() as $error) + echo $error; + echo count($validation->getErrors())>0? '
':null; + ?> + +
+
+ 'form-label']); ?> +
+ +
+
+ 'form-label']); ?> +
+ +
+
+ 'form-label']); ?> + +
+
+ 'form-label']); ?> + +
+
+ + +
+
+ + 'btn btn-primary']); ?> +
+
+ +
From b91c3d2e076f15ddce959f54f6094bd347e1d0b1 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:41:42 +0200 Subject: [PATCH 059/172] updated links of apprentice view view --- orif/plafor/Views/apprentice/view.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index fc48d66c..01a75467 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -15,7 +15,7 @@

- +
@@ -34,10 +34,10 @@ foreach ($trainers as $trainer): if($link['fk_trainer'] == $trainer['id']): ?> - - + +

- +
+ -
@@ -63,14 +63,15 @@ - - - + +
-
+
\ No newline at end of file From 7fcf6478dc222b102b090bc3af3560f1f29535c4 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 25 May 2021 14:42:06 +0200 Subject: [PATCH 060/172] aded view user_course view --- orif/plafor/Views/user_course/view.php | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 orif/plafor/Views/user_course/view.php diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php new file mode 100644 index 00000000..1ed8720e --- /dev/null +++ b/orif/plafor/Views/user_course/view.php @@ -0,0 +1,69 @@ +
+
+
+

lang->line('details_user_course')?>

+
+
+

lang->line('field_user_course_date_begin')?>

+

date_begin?>

+
+
+

lang->line('field_user_course_date_end')?>

+

date_end?>

+
+
+

lang->line('field_user_course_status')?>

+

name?>

+
+
+

lang->line('apprentice') ?>

+ username?> +
+
+

lang->line('course_plan') ?>

+ formation_number?> official_name?> +
+
+ fk_trainer; + endforeach; + + if(($_SESSION['user_access'] == ACCESS_LVL_ADMIN) + || ($_SESSION['user_access'] == ACCESS_LVL_TRAINER && in_array($_SESSION['user_id'], $trainersId)) + || ($_SESSION['user_access'] == ACCESS_LVL_APPRENTICE && $user_course->fk_user == $apprentice->id)): ?> +
+

lang->line('field_user_course_objectives_status') ?>

+
+ + + + + + + + + + + + + + + + + + + +
lang->line('field_symbol'); ?>lang->line('field_objective_name'); ?>lang->line('field_taxonomy'); ?>lang->line('field_acquisition_level'); ?>
objective->symbol; ?>objective->name; ?>objective->taxonomy; ?>acquisition_level->name; ?>
+
+
+ + + + +
\ No newline at end of file From 3e30cb95fd97a53069db958254291a6ffbb288af Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:12:09 +0200 Subject: [PATCH 061/172] updated model - wrond scope declarator, change to static --- orif/plafor/Models/acquisitionStatusModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Models/acquisitionStatusModel.php b/orif/plafor/Models/acquisitionStatusModel.php index 90fb1072..d9c123f1 100644 --- a/orif/plafor/Models/acquisitionStatusModel.php +++ b/orif/plafor/Models/acquisitionStatusModel.php @@ -43,7 +43,7 @@ public static function getUserCourse($fkUserCourseId){ * @param $fkAcquisitionLevelId /the id of the fk_aquisition_level * @return array|null */ - public function getAcquisitionLevel($fkAcquisitionLevelId){ + public static function getAcquisitionLevel($fkAcquisitionLevelId){ return AcquisitionLevelModel::getInstance()->find($fkAcquisitionLevelId); } From 557623bbf6ba940bf140215693a99971921ef6a1 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:15:28 +0200 Subject: [PATCH 062/172] updated list_objective and added function -- save_objective, delete_objective, , if it's needed --- orif/plafor/Controllers/Admin.php | 273 +++++++++++++++++++++++++++++- 1 file changed, 269 insertions(+), 4 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index d055fa64..2798cb9f 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -248,7 +248,6 @@ public function save_competence_domain($competence_domain_id = 0) if ($competence_domain_id > 0) { CompetenceDomainModel::getInstance()->update($competence_domain_id, $competence_domain); } else { - var_dump($competence_domain); CompetenceDomainModel::getInstance()->insert($competence_domain); } return redirect()->to(base_url('plafor/admin/list_competence_domain')); @@ -483,13 +482,15 @@ public function delete_user_course($user_course_id, $action = 0){ public function list_objective($id_operational_competence = null,bool $with_archived=false) { $operational_competence=null; - if($id_operational_competence == null){ + if($id_operational_competence == null ||$id_operational_competence==0 && !$with_archived){ $objectives = ObjectiveModel::getInstance()->findAll(); - }else{ + } + elseif ($with_archived) + $objectives = ObjectiveModel::getInstance()->withDeleted()->findAll(); + else{ $operational_competence = OperationalCompetenceModel::getInstance()->find($id_operational_competence); $objectives = OperationalCompetenceModel::getObjectives($operational_competence['id']); } - $output = array( 'objectives' => $objectives, 'with_archived' => $with_archived @@ -501,5 +502,269 @@ public function list_objective($id_operational_competence = null,bool $with_arch $this->display_view(['Plafor\templates/admin_menu','Plafor\objective/list'], $output); } + /** + * Adds or modify a course plan + * + * @param integer $objective_id = The id of the course plan to modify, leave blank to create a new one + * @return void + */ + public function save_objective($objective_id = 0) + { + if (count($_POST) > 0) { + $objective_id = $this->request->getPost('id'); + $rules = array( + 'symbol'=>[ + 'label' => 'user_lang.field_objective_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']', + ], + 'taxonomy'=>[ + 'label' => 'user_lang.field_objective_taxonomy', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->TAXONOMY_MAX_VALUE.']', + ], + + 'name'=>[ + 'label' => 'user_lang.field_objective_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OBJECTIVE_NAME_MAX_LENGTH.']', + ] + ); + $this->validation->setRules($rules); + if ($this->validation->withRequest($this->request)->run()) { + $objective = array( + 'symbol' => $this->request->getPost('symbol'), + 'taxonomy' => $this->request->getPost('taxonomy'), + 'name' => $this->request->getPost('name'), + 'fk_operational_competence' => $this->request->getPost('operational_competence') + ); + if ($objective_id > 0) { + ObjectiveModel::getInstance()->update($objective_id, $objective); + } else { + ObjectiveModel::getInstance()->insert($objective); + } + return redirect()->to('plafor/admin/list_objective'); + } + } + $operationalCompetences=[]; + foreach (OperationalCompetenceModel::getInstance()->findAll() as $operationalCompetence) { + $operationalCompetences[$operationalCompetence['id']]=$operationalCompetence['name']; + } + + $output = array( + 'title' => lang('user_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), + 'objective' => ObjectiveModel::getInstance()->withDeleted()->find($objective_id), + 'operational_competences' => $operationalCompetences + ); + + return $this->display_view('\Plafor\objective/save', $output); + } + /** + * Deletes a course plan depending on $action + * + * @param integer $objective_id = ID of the objective to affect + * @param integer $action = Action to apply on the course plan: + * - 0 for displaying the confirmation + * - 1 for deactivating (soft delete) + * - 2 for deleting (hard delete) + * - 3 for reactivating + * @return void + */ + public function delete_objective($objective_id, $action = 0) + { + $objective = ObjectiveModel::getInstance()->withDeleted()->find($objective_id); + if (is_null($objective)) { + return redirect()->to('plafor/admin/objective/list'); + } + + switch($action) { + case 0: // Display confirmation + $output = array( + 'objective' => $objective, + 'title' => lang('user_lang.title_objective_delete'), + 'deleted' => $objective['archive'] + ); + $this->display_view('\Plafor\objective/delete', $output); + break; + case 1: // Deactivate (soft delete) objective + ObjectiveModel::getInstance()->delete($objective_id, FALSE); + return redirect()->to(base_url('plafor/admin/list_objective')); + case 2: // Hard delete + ObjectiveModel::getInstance()->delete($objective_id, TRUE); + return redirect()->to(base_url('plafor/admin/list_objective')); + + case 3: + ObjectiveModel::getInstance()->withDeleted()->update($objective_id,['archive'=>null]); + return redirect()->to(base_url('plafor/admin/save_objective/'.$objective_id)); + default: // Do nothing + return redirect()->to('plafor/admin/list_objective'); + } + } + /** + * Form to create a link between a apprentice and a course plan + * + * @param int (SQL PRIMARY KEY) $id_user_course + */ + + /*public function save_user_course($id_apprentice = null,$id_user_course = 0){ + + $apprentice = User_model::getInstance()->find($id_apprentice); + $user_course = UserCourseModel::getInstance()->find($id_user_course); + + if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))['id']){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + + if(count($_POST) > 0){ + $rules = array( + 'course_plan'=>[ + 'label' => 'user_lang.course_plan', + 'rules' => 'required|numeric', + ], + 'status'=>[ + 'label' => 'user_lang.status', + 'rules' => 'required|numeric', + ], + 'date_begin'=>[ + 'label' => 'user_lang.field_user_course_date_begin', + 'rules' => 'required' + ] + /* + array( + 'field' => 'date_end', + 'label' => 'lang:field_user_course_date_end', + 'rules' => 'required', + ), + */ + /* + ); + + $this->validation->setRules($rules); + + if($this->validation->withRequest($this->request)->run()){ + $user_course = array( + 'fk_user' => $id_apprentice, + 'fk_course_plan' => $this->request->getPost('course_plan'), + 'fk_status' => $this->request->getPost('status'), + 'date_begin' => $this->request->getPost('date_begin'), + 'date_end' => $this->request->getPost('date_end'), + ); + + if($id_user_course > 0){ + echo UserCourseModel::getInstance()->update($id_user_course, $user_course); + }else{ + UserCourseModel::getInstance()->insert($user_course); + + $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); + + $competenceDomainIds = array_column(CoursePlanModel::getCompetenceDomains($course_plan['id']), 'id'); + + $operational_competences = OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->findAll(); + + $objectiveIds = array_column(ObjectiveModel::getInstance()->whereIn('fk_operational_competence',array_column($operational_competences,'id'))->findAll(),'id'); + + foreach ($objectiveIds as $objectiveId){ + + $acquisition_status = array( + 'fk_objective' => $objectiveId, + 'fk_user_course' => $id_user_course, + 'fk_acquisition_level' => 1 + ); + + AcquisitionStatusModel::getInstance()->insert($acquisition_status); + } + } + + return redirect()->to(base_url('plafor/apprentice/view_apprentice/'.$id_apprentice)); + } + } + + $course_plans=[]; + foreach (CoursePlanModel::getInstance()->findAll() as $courseplan) + $course_plans[$courseplan['id']]=$courseplan['official_name']; + $status=[]; + foreach (UserCourseStatusModel::getInstance()->findAll() as $usercoursestatus) + $status[$usercoursestatus['id']]=$usercoursestatus['name']; + + $output = array( + 'title' => lang('user_lang.title_course_plan_link'), + 'course_plans' => $course_plans, + 'user_course' => $user_course, + 'status' => $status, + 'apprentice' => $apprentice + ); + + return $this->display_view('Plafor\user_course/save',$output); + } + */ + /** + * Create a link between a apprentice and a trainer, or change the trainer + * linked on the selected trainer_apprentice SQL entry + * + * @param INT (SQL PRIMARY KEY) $id_apprentice + * @param INT (SQL PRIMARY KEY) $id_link + */ + /* + public function save_apprentice_link($id_apprentice = null, $id_link = 0){ + + $apprentice = User_model::getInstance()->find($id_apprentice); + + if($_SESSION['user_access'] < config('\Plafor\Config\plaforConfig')->access_lvl_admin + || $apprentice == null + || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + return redirect()->to(base_url()); + } + + // It seems that the MY_model dropdown method can't return a filtered result + // so here we get every users that are trainer, then we create a array + // with the matching constitution + + if(count($_POST) > 0){ + $id_apprentice = $this->request->getPost('id'); + $rules = array( + 'apprentice'=>[ + 'label' => 'field_apprentice_username', + 'rules' => 'required|numeric' + ], + 'trainer'=>[ + 'label' => 'field_trainer_link', + 'rules' => 'required|numeric' + ] + ); + + $this->validation->setRules($rules); + + if($this->validation->withRequest($this->request)->run()){ + + $apprentice_link = array( + 'fk_trainer' => $this->request->getPost('trainer'), + 'fk_apprentice' => $this->request->getPost('apprentice'), + ); + if($id_link > 0){ + echo TrainerApprenticeModel::getInstance()->update($id_apprentice,$apprentice_link); + }else{ + echo TrainerApprenticeModel::getInstance()->insert($apprentice_link); + } + + return redirect()->to('plafor/apprentice/list_apprentice'); + } + } + + $trainersRaw = User_model::getTrainers(); + + $trainers = array(); + + foreach ($trainersRaw as $trainer){ + $trainers[$trainer['id']] = $trainer['username']; + } + + $link = TrainerApprenticeModel::getInstance()->find($id_link); + + $output = array( + 'apprentice' => $apprentice, + 'trainers' => $trainers, + 'link' => $link, + ); + + return $this->display_view('\Plafor\apprentice/link',$output); + } + */ } \ No newline at end of file From b95c5c9dfa840bbebb547d5594a6a44a91f3565b Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:17:49 +0200 Subject: [PATCH 063/172] added function save_apprentice_link, view_acquisition_status, save_acquisition_status, add_comment, view_operational_competence, view_objective, view_user_course --- orif/plafor/Controllers/Apprentice.php | 293 ++++++++++++++++++++++++- 1 file changed, 289 insertions(+), 4 deletions(-) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index f2b2b48e..94492731 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -6,9 +6,12 @@ use CodeIgniter\Config\Services; use CodeIgniter\Validation\Validation; +use Plafor\Models\AcquisitionLevelModel; use Plafor\Models\AcquisitionStatusModel; +use Plafor\Models\CommentModel; use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; +use Plafor\Models\ObjectiveModel; use Plafor\Models\OperationalCompetenceModel; use Plafor\Models\UserCourseModel; use Plafor\Models\UserCourseStatusModel; @@ -108,9 +111,7 @@ public function view_apprentice($apprentice_id = null) 'user_courses' => $user_courses, 'user_course_status' => $user_course_status, 'course_plans' => $course_plans - );/* - var_dump($course_plan); - exit();*/ + ); $this->display_view('Plafor\apprentice/view',$output); } /** @@ -231,6 +232,290 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ 'apprentice' => $apprentice ); - $this->display_view('Plafor\user_course/save',$output); + return $this->display_view('Plafor\user_course/save',$output); + } + /**@todo the user doesn't modify the trainer but add one on update + /** + * Create a link between a apprentice and a trainer, or change the trainer + * linked on the selected trainer_apprentice SQL entry + * + * @param int $id_apprentice = ID of the apprentice to add the link to or change the link of + * @param int $id_link = ID of the link to modify. If 0, adds a new link + * @return void + */ + public function save_apprentice_link($id_apprentice = null, $id_link = 0){ + + $apprentice = User_model::getInstance()->find($id_apprentice); + + if($_SESSION['user_access'] < config('\User\Config\UserConfig')->access_lvl_admin + || $apprentice == null + || $apprentice['fk_user_type'] != User_type_model::getInstance()-> + where('name',lang('user_lang.title_apprentice'))->first()['id']){ + return redirect()->to(base_url()); + } + + if(count($_POST) > 0){ + $rules = array( + 'trainer'=>[ + 'label' => 'user_lang.field_trainer_link', + 'rules' => 'required|numeric' + ] + + ); + + $this->validation->setRules($rules); + + if($this->validation->withRequest($this->request)->run()){ + $apprentice_link = array( + 'fk_trainer' => $this->request->getPost('trainer'), + 'fk_apprentice' => $this->request->getPost('apprentice'), + ); + // This is used to prevent an apprentice from being linked to the same person twice + $old_link = TrainerApprenticeModel::getInstance()->where('fk_trainer',$apprentice_link['fk_trainer'])->where('fk_apprentice',$apprentice_link['fk_apprentice'])->first(); + + if ($id_link > 0) { + if (!is_null($old_link)) { + // Delete the old link instead of deleting the one being changed + // It's easier that way + TrainerApprenticeModel::getInstance()->delete($id_link); + } else { + TrainerApprenticeModel::getInstance()->update($id_apprentice,$apprentice_link); + } + } elseif (is_null($old_link)) { + // Don't insert a new link that is the same as an old one + TrainerApprenticeModel::getInstance()->insert($apprentice_link); + } + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + } + // It seems that the MY_model dropdown method can't return a filtered result + // so here we get every users that are trainer, then we create a array + // with the matching constitution + + $trainersRaw = User_model::getTrainers(); + + $trainers = array(); + + foreach ($trainersRaw as $trainer){ + $trainers[$trainer['id']] = $trainer['username']; + } + + $link = TrainerApprenticeModel::getInstance()->find($id_link); + + $output = array( + 'apprentice' => $apprentice, + 'trainers' => $trainers, + 'link' => $link, + ); + + $this->display_view('Plafor\apprentice/link',$output); + } + /** + * Show details of the selected acquisition status + * + * @param int $acquisition_status_id = ID of the acquisition status to view + * @return void + */ + public function view_acquisition_status($acquisition_status_id = null){ + $acquisition_status = AcquisitionStatusModel::getInstance()->find($acquisition_status_id); + $objective=AcquisitionStatusModel::getObjective($acquisition_status['fk_objective']); + $acquisition_level=AcquisitionStatusModel::getAcquisitionLevel($acquisition_status['fk_acquisition_level']); + if($acquisition_status == null){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + exit(); + } + + $comments = CommentModel::getInstance()->where('fk_acquisition_status',$acquisition_status_id)->findAll(); + $trainers = User_model::getTrainers(); + $output = array( + 'acquisition_status' => $acquisition_status, + 'trainers' => $trainers, + 'comments' => $comments, + 'objective' => $objective, + 'acquisition_level' => $acquisition_level, + ); + + return $this->display_view('Plafor\acquisition_status/view',$output); + } + /** + * Changes an acquisition status for an apprentice + * + * @param int $acquisition_status_id = ID of the acquisition status to change + * @return void + */ + public function save_acquisition_status($acquisition_status_id = 0) { + $acquisitionStatus = AcquisitionStatusModel::getInstance()->find($acquisition_status_id); + + if($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_level_apprentice) { + // No need to check with $user_course outside of an apprentice + $userCourse = UserCourseModel::getInstance()->find($acquisitionStatus['fk_user_course']); + if ($userCourse['fk_user'] != $_SESSION['user_id']) { + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + } + + if (is_null($acquisitionStatus)) { + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + $acquisitionLevels=[]; + foreach (AcquisitionLevelModel::getInstance()->findAll() as $acquisitionLevel) + $acquisitionLevels[$acquisitionLevel['id']]=$acquisitionLevel['name']; + + // Check if data was sent + if (!empty($_POST)) { + $acquisitionLevel = $this->request->getPost('field_acquisition_level'); + + $this->validation->setRules(['field_acquisition_level'=>[ + 'label'=>'user_lang.field_acquisition_level', + 'rules'=>'required in_list['.implode(',', array_keys($acquisitionLevels)).']' + ]]); + + if ($this->validation->withRequest($this->request)->run()) { + $acquisitionStatus = [ + 'fk_acquisition_level' => $acquisitionLevel + ]; + AcquisitionStatusModel::getInstance()->update($acquisition_status_id, $acquisitionStatus); + + return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status_id)); + } + } + + $output = [ + 'acquisition_levels' => $acquisitionLevels, + 'acquisition_level' => $acquisitionStatus['fk_acquisition_level'], + 'id' => $acquisition_status_id + ]; + + return $this->display_view('Plafor\acquisition_status/save', $output); + } + public function add_comment($acquisition_status_id = null){ + $acquisition_status = AcquisitionStatusModel::getInstance()->find($acquisition_status_id); + + if($acquisition_status == null || $_SESSION['user_access'] != config('\User\Config\UserConfig')->access_lvl_trainer){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + + if (count($_POST) > 0) { + $rules = array( + 'comment'=>[ + 'label' => 'user_lang.field_comment', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']', + ] + ); + $this->validation->setRules($rules); + if ($this->validation->withRequest($this->request)->run()) { + $comment = array( + 'fk_trainer' => $_SESSION['user_id'], + 'fk_acquisition_status' => $acquisition_status_id, + 'comment' => $this->request->getPost('comment'), + 'date_creation' => date('Y-m-d H:i:s'), + ); + CommentModel::getInstance()->insert($comment); + + return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status['id'])); + } + } + + $output = array( + 'acquisition_status' => $acquisition_status, + ); + + return $this->display_view('\Plafor\comment/save',$output); + } + /** + * Show details of the selected operational competence + * + * @param int $operational_competence_id = ID of the operational competence to view + * @return void + */ + public function view_operational_competence($operational_competence_id = null) + { + $operational_competence = OperationalCompetenceModel::getInstance()->find($operational_competence_id); + + if($operational_competence == null){ + return redirect()->to(base_url('plafor/admin/list_operational_competence')); + } + + $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); + $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); + $objectives=OperationalCompetenceModel::getObjectives($operational_competence['id']); + $output = array( + 'operational_competence' => $operational_competence, + 'competence_domain' => $competence_domain, + 'course_plan' => $course_plan, + 'objectives' => $objectives + ); + + return $this->display_view('\Plafor/operational_competence/view',$output); + } + /** + * Show details of the selected objective + * @param int $objective_id = ID of the objective to view + * @return void + */ + public function view_objective($objective_id = null) + { + $objective = ObjectiveModel::getInstance()->find($objective_id); + + if($objective == null){ + return redirect()->to(base_url('plafor/admin/list_objective')); + } + + $operational_competence = ObjectiveModel::getOperationalCompetence($objective['fk_operational_competence']); + $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); + $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); + + $output = array( + 'objective' => $objective, + 'operational_competence' => $operational_competence, + 'competence_domain' => $competence_domain, + 'course_plan' => $course_plan + ); + + $this->display_view('Plafor\objective/view',$output); + } + /** + * Show a user course's details + * + * @param int $id_user_course = ID of the user course to view + * @return void + */ + public function view_user_course($id_user_course = null){ + $user_course = UserCourseModel::getInstance()->find($id_user_course); + if($user_course == null){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + + $apprentice = User_model::getInstance()->find($user_course['fk_user']); + if($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_level_apprentice && $apprentice['id'] != $_SESSION['user_id']) { + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + $user_course_status = UserCourseModel::getUserCourseStatus($user_course['fk_status']); + $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); + $trainers_apprentice = TrainerApprenticeModel::getInstance()->where('fk_apprentice',$apprentice['id'])->findAll(); + $acquisition_status = UserCourseModel::getAcquisitionStatus($id_user_course); + if($user_course == null){ + return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + } + $objectives=[]; + foreach ($acquisition_status as $acquisitionstatus){ + $objectives[$acquisitionstatus['fk_objective']]=AcquisitionStatusModel::getObjective($acquisitionstatus['fk_objective']); + } + $acquisition_levels=[]; + foreach (AcquisitionLevelModel::getInstance()->findAll() as $acquisitionLevel){ + $acquisition_levels[$acquisitionLevel['id']]=$acquisitionLevel; + } + $output = array( + 'user_course' => $user_course, + 'apprentice' => $apprentice, + 'user_course_status' => $user_course_status, + 'course_plan' => $course_plan, + 'trainers_apprentice' => $trainers_apprentice, + 'acquisition_status' => $acquisition_status, + 'acquisition_levels' => $acquisition_levels, + 'objectives'=>$objectives + ); + + $this->display_view('\Plafor\user_course/view',$output); } } \ No newline at end of file From c059627c68421a2e463526f8a6674821417dc99d Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:18:27 +0200 Subject: [PATCH 064/172] added translation for btn_show_disabled, btn_delete, btn_reactivate --- orif/common/Language/fr/common_lang.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 9a8d3aea..0dd8a611 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -28,7 +28,9 @@ 'btn_details' => 'Détails', 'btn_edit' => 'Modifier', 'btn_disable' => 'Désactiver', - 'btn_show_disabled' => 'Afficher les éléments désactivés' , + 'btn_show_disabled' => 'Afficher les éléments désactivés', + 'btn_delete' => 'Supprimer', + 'btn_reactivate' => 'Réactiver', // Other common texts 'yes' => 'Oui', 'no' => 'Non' From a0164f9f97deb58a5f5772eb42e9f95c0eb90d37 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:19:22 +0200 Subject: [PATCH 065/172] added and updated conform to ci 4 objective views --- orif/plafor/Views/objective/delete.php | 14 +++---- orif/plafor/Views/objective/list.php | 4 +- orif/plafor/Views/objective/save.php | 51 +++++++++++++---------- orif/plafor/Views/objective/view.php | 56 +++++++++++++------------- 4 files changed, 67 insertions(+), 58 deletions(-) diff --git a/orif/plafor/Views/objective/delete.php b/orif/plafor/Views/objective/delete.php index 7b5abc9b..284ce691 100644 --- a/orif/plafor/Views/objective/delete.php +++ b/orif/plafor/Views/objective/delete.php @@ -5,21 +5,21 @@
diff --git a/orif/plafor/Views/objective/list.php b/orif/plafor/Views/objective/list.php index 7053adc0..58e1d52a 100644 --- a/orif/plafor/Views/objective/list.php +++ b/orif/plafor/Views/objective/list.php @@ -45,7 +45,7 @@ - + access_lvl_admin): ?> × @@ -61,7 +61,7 @@ $(document).ready(function(){ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; - $.post('admin/list_objective//'+(+checked), {}, data => { + $.post(''+(+checked), {}, data => { $('#objectiveslist').empty(); $('#objectiveslist')[0].innerHTML = $(data).find('#objectiveslist')[0].innerHTML; }); diff --git a/orif/plafor/Views/objective/save.php b/orif/plafor/Views/objective/save.php index 4a12daa6..0f60fa5c 100644 --- a/orif/plafor/Views/objective/save.php +++ b/orif/plafor/Views/objective/save.php @@ -1,29 +1,31 @@ - 'symbol', - 'value' => $objective_symbol ?? $objective->symbol ?? '', - 'max' => SYMBOL_MAX_LENGTH, + 'value' => $objective_symbol ?? $objective['symbol'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH, 'class' => 'form-control', 'id' => 'objective_symbol' ); $data_taxonomy = array( 'name' => 'taxonomy', - 'value' => $objective_taxonomy ?? $objective->taxonomy ?? '', + 'value' => $objective_taxonomy ?? $objective['taxonomy'] ?? '', 'type' => 'number', - 'max' => TAXONOMY_MAX_VALUE, + 'max' => config('\Plafor\Config\PlaforConfig')->TAXONOMY_MAX_VALUE, 'class' => 'form-control', 'id' => 'objective_taxonomy' ); $data_name = array( 'name' => 'name', - 'value' => $objective_name ?? $objective->name ?? '', - 'max' => OBJECTIVE_NAME_MAX_LENGTH, + 'value' => $objective_name ?? $objective['name'] ?? '', + 'max' => config('\Plafor\Config\PlaforConfig')->OBJECTIVE_NAME_MAX_LENGTH, 'type' => 'text', 'class' => 'form-control', 'id' => 'objective_name' ); @@ -32,7 +34,7 @@
-

+

@@ -42,27 +44,34 @@ 'id' => 'objective_form', 'name' => 'objective_form' ); - echo form_open('admin/save_objective', $attributes, [ - 'id' => $objective->id ?? 0 + echo form_open('plafor/admin/save_objective', $attributes, [ + 'id' => $objective['id'] ?? 0 ]); ?> - ', '
'); ?> + getErrors())>0?'
':null; + foreach ($validation->getErrors() as $error) { + echo $error; + } + echo count($validation->getErrors())>0?'
':null; + ?> +
- 'form-label']); ?> + 'form-label']); ?>
- fk_operational_competence ?? '','id="operational_competence" class="form-control"')?> +
- 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
@@ -70,13 +79,13 @@
- - archive) { ?> - - + + + + - 'btn btn-primary']); ?> + 'btn btn-primary']); ?>
diff --git a/orif/plafor/Views/objective/view.php b/orif/plafor/Views/objective/view.php index dd2b2e1b..baae6c45 100644 --- a/orif/plafor/Views/objective/view.php +++ b/orif/plafor/Views/objective/view.php @@ -1,70 +1,70 @@
-

lang->line('details_course_plan')?>

+

-

lang->line('field_course_plan_formation_number')?>

- formation_number?> +

+
-

lang->line('field_course_plan_official_name')?>

- official_name?> +

+
-

lang->line('details_competence_domain')?>

+

-

lang->line('field_competence_domain_symbol')?>

- symbol?> +

+
-

lang->line('field_competence_domain_name')?>

- name?> +

+
-

lang->line('details_operational_competence')?>

+

-

lang->line('field_operational_competence_symbol')?>

- symbol?> +

+
-

lang->line('field_operational_competence_name')?>

- name?> +

+
-

lang->line('field_operational_competence_methodologic')?>

- methodologic?> +

+
-

lang->line('field_operational_competence_social')?>

- social?> +

+
-

lang->line('field_operational_competence_personal')?>

- personal?> +

+
-

lang->line('details_objective')?>

+

-

lang->line('field_objective_symbol')?>

-

symbol?>

+

+

-

lang->line('field_objective_taxonomy')?>

-

taxonomy?>

+

+

-

lang->line('field_objective_name')?>

-

name?>

+

+

\ No newline at end of file From df76b1accaf8299e29a57d1fb4e97227a2fb1a2e Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:19:58 +0200 Subject: [PATCH 066/172] added and updated conform to ci 4 apprentice views --- orif/plafor/Views/apprentice/delete.php | 2 +- orif/plafor/Views/apprentice/link.php | 32 +++++++++++++++---------- orif/plafor/Views/apprentice/list.php | 1 - 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/orif/plafor/Views/apprentice/delete.php b/orif/plafor/Views/apprentice/delete.php index 74cec303..07158ed7 100644 --- a/orif/plafor/Views/apprentice/delete.php +++ b/orif/plafor/Views/apprentice/delete.php @@ -12,7 +12,7 @@
'); ?> - + getErrors())>0?'
':null; + foreach ($validation->getErrors() as $error) + echo $error; + echo count($validation->getErrors())>0?'
':null; + ?>
- 'form-label']); ?> + 'form-label']); ?> -

username?>

+

- 'form-label']); ?> + 'form-label']); ?>
- id ?? '','id="trainer" class="form-control"')?> +
- - 'btn btn-primary']); ?> + + 'btn btn-primary']); ?>
diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index c2e2aa9d..9609a428 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -27,7 +27,6 @@ Date: Thu, 27 May 2021 08:21:11 +0200 Subject: [PATCH 067/172] modified ObjectiveModel, added archive to allowed field. Because update --- orif/plafor/Models/objectiveModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 2a4443fa..756b2b90 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -12,7 +12,7 @@ class ObjectiveModel extends \CodeIgniter\Model private static $objectiveModel=null; protected $table='objective'; protected $primaryKey='id'; - protected $allowedFields=['fk_operational_competence','symbol','taxonomy','name']; + protected $allowedFields=['archive','fk_operational_competence','symbol','taxonomy','name']; protected $useSoftDeletes=true; protected $deletedField='archive'; private OperationalCompetenceModel $operationalCompetenceModel; From a28ff6142748945262fa2f68a34969ad42eee8d5 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:22:29 +0200 Subject: [PATCH 068/172] added and updated view conform to ci4 in acquisition_status --- orif/plafor/Views/acquisition_status/save.php | 48 ++++++++++++++++ orif/plafor/Views/acquisition_status/view.php | 57 +++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 orif/plafor/Views/acquisition_status/save.php create mode 100644 orif/plafor/Views/acquisition_status/view.php diff --git a/orif/plafor/Views/acquisition_status/save.php b/orif/plafor/Views/acquisition_status/save.php new file mode 100644 index 00000000..8fb3cbd9 --- /dev/null +++ b/orif/plafor/Views/acquisition_status/save.php @@ -0,0 +1,48 @@ + + diff --git a/orif/plafor/Views/acquisition_status/view.php b/orif/plafor/Views/acquisition_status/view.php new file mode 100644 index 00000000..e1ebb9cd --- /dev/null +++ b/orif/plafor/Views/acquisition_status/view.php @@ -0,0 +1,57 @@ +
+
+
+

+
+

+ +
+

+ +
+

+ +
+
+

+ +
+
+
+
+

+
+ = config('\User\Config\UserConfig')->ACCESS_LVL_TRAINER) { ?> + + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+
From 6e6cb015cc4375dc3037bc0cdf88ea154d3d011f Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:22:57 +0200 Subject: [PATCH 069/172] added and updated view conform to ci4 in comment --- orif/plafor/Views/comment/save.php | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 orif/plafor/Views/comment/save.php diff --git a/orif/plafor/Views/comment/save.php b/orif/plafor/Views/comment/save.php new file mode 100644 index 00000000..6caad1f4 --- /dev/null +++ b/orif/plafor/Views/comment/save.php @@ -0,0 +1,57 @@ + 'comment', + 'max' => config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH, + 'class' => 'form-control', + 'id' => 'comment' + ); + helper('form'); + $validation=\CodeIgniter\Config\Services::validation() +?> +
+ +
+
+

+
+
+ + + 'comment_form', + 'name' => 'comment_form' + ); + echo form_open(base_url('plafor/apprentice/add_comment/'.$acquisition_status['id'])); + ?> + + + getErrors())>0?'
':null; + foreach ($validation->getErrors() as $error) { + echo $error; + } + echo count($validation->getErrors())>0?'
':null; + ?> + + +
+
+ 'form-label']); ?> + +
+
+ + +
+
+ + 'btn btn-primary']); ?> +
+
+ +
From c96de611b4bdcfa166384b5543e2cd5db1679bc8 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:23:19 +0200 Subject: [PATCH 070/172] added and updated view conform to ci4 in competence_domain --- orif/plafor/Views/competence_domain/view.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/orif/plafor/Views/competence_domain/view.php b/orif/plafor/Views/competence_domain/view.php index 9b7350a6..852ef090 100644 --- a/orif/plafor/Views/competence_domain/view.php +++ b/orif/plafor/Views/competence_domain/view.php @@ -5,11 +5,11 @@

- +

- +
@@ -40,8 +40,8 @@ - - + From d3c3b2dded82b1df61e71bab6c88e27559b70bca Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:23:45 +0200 Subject: [PATCH 071/172] added and updated view conform to ci4 in operational_competence --- .../Views/operational_competence/view.php | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/orif/plafor/Views/operational_competence/view.php b/orif/plafor/Views/operational_competence/view.php index e0fdea22..5dcc98b4 100644 --- a/orif/plafor/Views/operational_competence/view.php +++ b/orif/plafor/Views/operational_competence/view.php @@ -1,74 +1,74 @@
-

lang->line('details_course_plan')?>

+

-

lang->line('field_course_plan_formation_number')?>

- formation_number?> +

+
-

lang->line('field_course_plan_official_name')?>

- official_name?> +

+
-

lang->line('details_competence_domain')?>

+

-

lang->line('field_competence_domain_symbol')?>

- symbol?> +

+
-

lang->line('field_competence_domain_name')?>

- name?> +

+
-

lang->line('details_operational_competence')?>

+

-

lang->line('field_operational_competence_symbol')?>

-

symbol?>

+

+

-

lang->line('field_operational_competence_name')?>

-

name?>

+

+

-

lang->line('field_operational_competence_methodologic')?>

-

methodologic?>

+

+

-

lang->line('field_operational_competence_social')?>

-

social?>

+

+

-

lang->line('field_operational_competence_personal')?>

-

personal?>

+

+

-

lang->line('field_linked_objectives')?>

+

- - - + + + objectives as $objective){ + foreach ($objectives as $objective){ ?> - - - + +
lang->line('field_objectives_symbols')?>lang->line('field_objectives_taxonomies')?>lang->line('field_objectives_names')?>
symbol?>taxonomy?>name?>
From 578eb804a4ea95719b9f0122fdf44039c25e8a17 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 27 May 2021 08:24:04 +0200 Subject: [PATCH 072/172] added and updated view conform to ci4 in user_course --- orif/plafor/Views/user_course/view.php | 54 +++++++++++++------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php index 1ed8720e..b15d4bb6 100644 --- a/orif/plafor/Views/user_course/view.php +++ b/orif/plafor/Views/user_course/view.php @@ -1,56 +1,56 @@
-

lang->line('details_user_course')?>

+

-

lang->line('field_user_course_date_begin')?>

-

date_begin?>

+

+

-

lang->line('field_user_course_date_end')?>

-

date_end?>

+

+

-

lang->line('field_user_course_status')?>

-

name?>

+

+

-

lang->line('apprentice') ?>

- username?> +

+
-

lang->line('course_plan') ?>

- formation_number?> official_name?> +

+
fk_trainer; + $trainers_id[] = $trainer_apprentice['fk_trainer']; endforeach; - if(($_SESSION['user_access'] == ACCESS_LVL_ADMIN) - || ($_SESSION['user_access'] == ACCESS_LVL_TRAINER && in_array($_SESSION['user_id'], $trainersId)) - || ($_SESSION['user_access'] == ACCESS_LVL_APPRENTICE && $user_course->fk_user == $apprentice->id)): ?> + if(($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_admin) + || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_trainer && in_array($_SESSION['user_id'], $trainers_id)) + || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_apprentice && $user_course['fk_user'] == $apprentice['id'])): ?>
-

lang->line('field_user_course_objectives_status') ?>

+

- - - - + + + + - - - - + + + + @@ -58,11 +58,11 @@ - + access_lvl_admin): ?> From b5ef119ce2901b0d8f33c6d66d372825f85af5d0 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Mon, 31 May 2021 13:31:12 +0200 Subject: [PATCH 073/172] add titles lang in plafor module --- orif/plafor/Controllers/Apprentice.php | 1 + orif/plafor/Language/fr/plafor_lang.php | 30 +++++++++++++++++++ orif/plafor/Views/apprentice/view.php | 6 ++-- orif/plafor/Views/competence_domain/view.php | 4 +-- orif/plafor/Views/course_plan/view.php | 4 +-- orif/plafor/Views/objective/view.php | 8 ++--- .../Views/operational_competence/list.php | 2 +- .../Views/operational_competence/view.php | 6 ++-- orif/plafor/Views/user_course/view.php | 2 +- 9 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 orif/plafor/Language/fr/plafor_lang.php diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 94492731..44ed4967 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -105,6 +105,7 @@ public function view_apprentice($apprentice_id = null) $links[$link['id']]=$link; $output = array( + 'title' => lang('plafor_lang.title_view_apprentice'), 'apprentice' => $apprentice, 'trainers' => $trainers, 'links' => $links, diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php new file mode 100644 index 00000000..af83e6cb --- /dev/null +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -0,0 +1,30 @@ + 'Liste des apprentis', + 'title_view_apprentice' => 'Détail de l\'apprenti', + 'title_save_apprentice_link' => 'Ajouter un formateur lié', + 'title_save_user_course' => 'Ajouter une formation liée', + 'title_view_user_course' => 'Détail de la formation de l\'apprenti', + 'title_trainer_linked' => 'Formateur(s) lié(s)', + 'title_apprentice_followed_courses' => 'Formation(s) suivie(s)', + + //Course Plan + 'title_view_course_plan' => 'Détail du plan de formation', + 'title_delete_course_plan' => 'Supprimer', + + //Competence Domain + 'title_view_competence_domain' => 'Détail du domaine de compétence', + 'title_view_competence_domains_linked' => 'Domaines de compétences liés', + + //Operational Competence + 'title_list_operational_competence' => 'Liste des compétences opérationnelles', + 'title_view_operational_competence' => 'Détail de la compétence opérationnelle', + 'title_view_operational_competence_linked' => 'Compétences opérationnelles liées', + + //Objectives + 'title_list_objective' => 'Liste des objectifs', + 'title_view_objective' => 'Détail de l\'objectif' + ]; \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index 01a75467..2c11adeb 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -1,7 +1,7 @@
-

+

@@ -14,7 +14,7 @@
-

+

@@ -50,7 +50,7 @@
-

+

diff --git a/orif/plafor/Views/competence_domain/view.php b/orif/plafor/Views/competence_domain/view.php index 852ef090..549519f0 100644 --- a/orif/plafor/Views/competence_domain/view.php +++ b/orif/plafor/Views/competence_domain/view.php @@ -1,7 +1,7 @@
-

+

@@ -27,7 +27,7 @@
-

+

lang->line('field_symbol'); ?>lang->line('field_objective_name'); ?>lang->line('field_taxonomy'); ?>lang->line('field_acquisition_level'); ?>
objective->symbol; ?>objective->name; ?>objective->taxonomy; ?>acquisition_level->name; ?>
diff --git a/orif/plafor/Views/course_plan/view.php b/orif/plafor/Views/course_plan/view.php index ece7524d..9b089c92 100644 --- a/orif/plafor/Views/course_plan/view.php +++ b/orif/plafor/Views/course_plan/view.php @@ -1,7 +1,7 @@
-

+

@@ -18,7 +18,7 @@
-

+

diff --git a/orif/plafor/Views/objective/view.php b/orif/plafor/Views/objective/view.php index baae6c45..42319ba3 100644 --- a/orif/plafor/Views/objective/view.php +++ b/orif/plafor/Views/objective/view.php @@ -1,7 +1,7 @@
-

+

@@ -14,7 +14,7 @@
-

+

@@ -27,7 +27,7 @@
-

+

@@ -52,7 +52,7 @@
-

+

diff --git a/orif/plafor/Views/operational_competence/list.php b/orif/plafor/Views/operational_competence/list.php index 634d2a41..fd61b342 100644 --- a/orif/plafor/Views/operational_competence/list.php +++ b/orif/plafor/Views/operational_competence/list.php @@ -34,7 +34,7 @@
- + diff --git a/orif/plafor/Views/operational_competence/view.php b/orif/plafor/Views/operational_competence/view.php index 5dcc98b4..d4caa98c 100644 --- a/orif/plafor/Views/operational_competence/view.php +++ b/orif/plafor/Views/operational_competence/view.php @@ -1,7 +1,7 @@
-

+

@@ -14,7 +14,7 @@
-

+

@@ -27,7 +27,7 @@
-

+

diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php index b15d4bb6..67c3c6fd 100644 --- a/orif/plafor/Views/user_course/view.php +++ b/orif/plafor/Views/user_course/view.php @@ -1,7 +1,7 @@
-

+

From b7a8aae84872622d97a377a60612fecb3d375f0b Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 1 Jun 2021 13:03:46 +0200 Subject: [PATCH 074/172] add trainer filter apprentice list --- orif/common/Language/fr/common_lang.php | 1 + orif/plafor/Controllers/Apprentice.php | 26 +++++++++++++++++++------ orif/plafor/Views/apprentice/list.php | 9 +++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 0dd8a611..b10fbc6c 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -31,6 +31,7 @@ 'btn_show_disabled' => 'Afficher les éléments désactivés', 'btn_delete' => 'Supprimer', 'btn_reactivate' => 'Réactiver', + 'btn_search' => 'Rechercher', // Other common texts 'yes' => 'Oui', 'no' => 'Non' diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 44ed4967..d39f9f13 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -54,21 +54,35 @@ public function view_course_plan($course_plan_id = null) public function list_apprentice() { + $trainer_id = $this->request->getGet('trainer_id'); + $trainersList = array(); + $trainersList[0] = "Tous"; + $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); + + foreach(User_model::getTrainers() as $trainer) + { + $trainersList[$trainer['id']] = $trainer['username']; + } + $intermediateList=[]; - //if($trainer_id == null){ - $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); + if($trainer_id == null or $trainer_id == 0){ $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); $coursesList=[]; foreach (CoursePlanModel::getInstance()->findall() as $courseplan) $coursesList[$courseplan['id']]=$courseplan; $courses = UserCourseModel::getInstance()->findall(); - //}else{ - // $apprentices = $this->user_model->get_many_by(array('id' => $trainer_id)); - - //} + }else{ + $apprentices = User_Model::getInstance()->whereIn('id', array_column(TrainerApprenticeModel::getInstance()->where('fk_trainer', $trainer_id)->findall(), 'fk_apprentice'))->findall(); + $coursesList=[]; + foreach (CoursePlanModel::getInstance()->findall() as $courseplan) + $coursesList[$courseplan['id']]=$courseplan; + $courses = UserCourseModel::getInstance()->findall(); + } $output = array( + 'trainer_id' => $trainer_id, + 'trainers' => $trainersList, 'apprentices' => $apprentices, 'coursesList' => $coursesList, 'courses' => $courses diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 9609a428..9f4634fe 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -1,4 +1,5 @@

+
+ 'GET']); + echo form_dropdown('trainer_id', $trainers, $trainer_id, ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); + echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']); + echo form_close(); + ?> +
From 33cac1f0d664793a859d5d19b4162dd822f04c67 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 8 Jun 2021 10:53:32 +0200 Subject: [PATCH 075/172] updated course_plan/apprentice and resolve bugs --- orif/common/Views/login_bar.php | 2 ++ orif/plafor/Controllers/Admin.php | 39 ++++++++++++++------- orif/plafor/Controllers/Apprentice.php | 16 ++++----- orif/plafor/Language/fr/plafor_lang.php | 5 +++ orif/plafor/Models/coursePlanModel.php | 2 +- orif/plafor/Views/apprentice/link.php | 13 +++++-- orif/plafor/Views/course_plan/list.php | 16 +++++++-- orif/plafor/Views/course_plan/save.php | 46 +++++++++++++++---------- orif/user/Views/admin/list_user.php | 2 +- 9 files changed, 94 insertions(+), 47 deletions(-) diff --git a/orif/common/Views/login_bar.php b/orif/common/Views/login_bar.php index 0e587cb8..ddb91c46 100644 --- a/orif/common/Views/login_bar.php +++ b/orif/common/Views/login_bar.php @@ -12,6 +12,8 @@ */ ?> + +
diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 2798cb9f..52cdd4f6 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -31,12 +31,13 @@ public function initController(\CodeIgniter\HTTP\RequestInterface $request, \Cod * * @return void */ - public function list_course_plan($id_apprentice = null) + public function list_course_plan($id_apprentice = null, bool $with_archived=false) { + $id_apprentice==0?$id_apprentice = null:null; $coursePlanModel=new CoursePlanModel(); $userCourseModel=new UserCourseModel(); if($id_apprentice == null){ - $course_plans = $coursePlanModel->findAll(); + $course_plans = $coursePlanModel->withDeleted($with_archived)->findAll(); }else{ $userCourses = $userCourseModel->getWhere(['fk_user'=>$id_apprentice])->getResult(); @@ -51,7 +52,8 @@ public function list_course_plan($id_apprentice = null) } $output = array( - 'course_plans' => $course_plans + 'course_plans' => $course_plans, + 'with_archived' => $with_archived ); if(is_numeric($id_apprentice)){ @@ -68,26 +70,29 @@ public function list_course_plan($id_apprentice = null) */ public function save_course_plan($course_plan_id = 0) { + $lastDatas = array(); + var_dump(count($this->request->getPost())); if (count($_POST) > 0) { - $course_plan_id = $this->request->getPost('id'); - $rules = array( + $course_plan_id = empty($this->request->getPost('coursePlanId'))?0:$this->request->getPost('coursePlanId'); + var_dump($course_plan_id==0); + $rules = array( 'formation_number'=>[ 'label' => 'user_lang.field_course_plan_formation_number', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric|checkFormPlanNumber', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric'.($course_plan_id==0?('|checkFormPlanNumber'):("")), ], 'official_name'=>[ 'label' => 'user_lang.field_course_plan_official_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH.']', ],'date_begin'=>[ - 'label' => 'user_lang.field_course_plan_official_name', - 'rules' => 'required|required', + 'label' => 'user_lang.field_course_plan_date_begin', + 'rules' => 'required', ] ); $this->validation->setRules($rules); if ($this->validation->withRequest($this->request)->run()) { $course_plan = array( 'formation_number' => $this->request->getPost('formation_number'), - 'official_name' => $this->request->getPost('official_name'), + 'official_name' => ' '.$this->request->getPost('official_name'), 'date_begin' => $this->request->getPost('date_begin') ); if ($course_plan_id > 0) { @@ -97,11 +102,21 @@ public function save_course_plan($course_plan_id = 0) } return redirect()->to(base_url('/plafor/admin/list_course_plan')); } + else { + $lastDatas = array( + 'formation_number' => $this->request->getPost('formation_number'), + 'official_name' => ' '.$this->request->getPost('official_name'), + 'date_begin' => $this->request->getPost('date_begin') + ); + } } - + if($this->request->getPost('coursePlanId')){ + $course_plan_id = $this->request->getPost('coursePlanId'); + } + $formTitle = $course_plan_id<>0?'update' : 'new'; $output = array( - 'title' => lang('user_lang.title_course_plan_'.((bool)$course_plan_id ? 'update' : 'new')), - 'course_plan' => CoursePlanModel::getInstance()->find($course_plan_id) + 'title' => (lang('plafor_lang.title_course_plan_'.$formTitle)), + 'course_plan' => CoursePlanModel::getInstance()->find($course_plan_id)==null?$lastDatas:CoursePlanModel::getInstance()->find($course_plan_id) ); $this->display_view('\Plafor\course_plan\save', $output); diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index d39f9f13..b5c063ed 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -188,13 +188,13 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ ), */ ); - $this->validation->setRules($rules); if($this->validation->withRequest($this->request)->run()){ + $fk_course_plan = $this->request->getPost('course_plan'); $user_course = array( 'fk_user' => $id_apprentice, - 'fk_course_plan' => $this->request->getPost('course_plan'), + 'fk_course_plan' => $fk_course_plan, 'fk_status' => $this->request->getPost('status'), 'date_begin' => $this->request->getPost('date_begin'), 'date_end' => $this->request->getPost('date_end'), @@ -202,7 +202,7 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ if($id_user_course > 0){ echo UserCourseModel::getInstance()->update($id_user_course, $user_course); - }else{ + }else if(UserCourseModel::getInstance()->where('fk_user', $id_apprentice)->where('fk_course_plan', $fk_course_plan)->first()==null) { $id_user_course = UserCourseModel::getInstance()->insert($user_course); $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); @@ -258,7 +258,7 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ * @param int $id_link = ID of the link to modify. If 0, adds a new link * @return void */ - public function save_apprentice_link($id_apprentice = null, $id_link = 0){ + public function save_apprentice_link($id_apprentice = null, $id_link = null){ $apprentice = User_model::getInstance()->find($id_apprentice); @@ -288,19 +288,19 @@ public function save_apprentice_link($id_apprentice = null, $id_link = 0){ // This is used to prevent an apprentice from being linked to the same person twice $old_link = TrainerApprenticeModel::getInstance()->where('fk_trainer',$apprentice_link['fk_trainer'])->where('fk_apprentice',$apprentice_link['fk_apprentice'])->first(); - if ($id_link > 0) { + if ($id_link != null) { if (!is_null($old_link)) { // Delete the old link instead of deleting the one being changed // It's easier that way TrainerApprenticeModel::getInstance()->delete($id_link); } else { - TrainerApprenticeModel::getInstance()->update($id_apprentice,$apprentice_link); + TrainerApprenticeModel::getInstance()->update($id_link,$apprentice_link); } } elseif (is_null($old_link)) { // Don't insert a new link that is the same as an old one TrainerApprenticeModel::getInstance()->insert($apprentice_link); } - return redirect()->to(base_url('plafor/apprentice/list_apprentice')); + return redirect()->to(base_url("plafor/apprentice/view_apprentice/{$id_apprentice}")); } } // It seems that the MY_model dropdown method can't return a filtered result @@ -315,7 +315,7 @@ public function save_apprentice_link($id_apprentice = null, $id_link = 0){ $trainers[$trainer['id']] = $trainer['username']; } - $link = TrainerApprenticeModel::getInstance()->find($id_link); + $link = $id_link==null?null:TrainerApprenticeModel::getInstance()->find($id_link); $output = array( 'apprentice' => $apprentice, diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index af83e6cb..cbc44911 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -2,6 +2,9 @@ return [ + //Usefull Links + 'plafor_module' => 'Module Plafor', + //Apprentice 'title_list_apprentice' => 'Liste des apprentis', 'title_view_apprentice' => 'Détail de l\'apprenti', @@ -14,6 +17,8 @@ //Course Plan 'title_view_course_plan' => 'Détail du plan de formation', 'title_delete_course_plan' => 'Supprimer', + 'title_course_plan_new' => 'Ajouter un plan de formation', + 'title_course_plan_update' => 'Modifier le plan de formation', //Competence Domain 'title_view_competence_domain' => 'Détail du domaine de compétence', diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index ffc5402f..cedd2787 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -7,7 +7,7 @@ class CoursePlanModel extends Model{ private static $coursePlanModel=null; protected $table='course_plan'; protected $primaryKey='id'; - protected $allowedFields=['formation_number','official_name','date_begin']; + protected $allowedFields=['id', 'formation_number','official_name','date_begin']; protected $useSoftDeletes=true; protected $deletedField='archive'; private $userCourseModel=null; diff --git a/orif/plafor/Views/apprentice/link.php b/orif/plafor/Views/apprentice/link.php index f483eec9..3617231b 100644 --- a/orif/plafor/Views/apprentice/link.php +++ b/orif/plafor/Views/apprentice/link.php @@ -28,7 +28,14 @@ 'id' => 'apprentice_link_form', 'name' => 'apprentice_link_form' ); - echo form_open('plafor/apprentice/save_apprentice_link/'.$apprentice['id'], $attributes, [ + $formAction = ''; + //exit(); + if($link==null) { + $formAction = 'plafor/apprentice/save_apprentice_link/'.$apprentice['id']; + } else { + $formAction = 'plafor/apprentice/save_apprentice_link/'.$apprentice['id'].'/'.$link['id']; + } + echo form_open($formAction, $attributes, [ 'id' => $apprentice['id'] ?? 0 ]); ?> @@ -50,12 +57,12 @@
'form-label']); ?>
- +
- + "> 'btn btn-primary']); ?>
diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index 6bcd37d8..7d0f592a 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -1,4 +1,5 @@
-
+
+
+ 'toggle_deleted', 'class' => 'form-check-input' + ]);?> + 'form-check-label']);?> +
+
+
×
@@ -47,11 +56,12 @@ \ No newline at end of file + diff --git a/orif/plafor/Views/course_plan/save.php b/orif/plafor/Views/course_plan/save.php index e15b2735..e8a6b22a 100644 --- a/orif/plafor/Views/course_plan/save.php +++ b/orif/plafor/Views/course_plan/save.php @@ -35,7 +35,7 @@
-

+

@@ -44,10 +44,10 @@ $attributes = array( 'id' => 'course_plan_form', 'name' => 'course_plan_form' - ); - echo form_open('plafor/admin/save_course_plan', $attributes, [ - 'id' => $course_plan->id ?? 0 - ]); + ); if(!isset($course_plan['id'])){ + $course_plan['id'] = null; + } + echo form_open(base_url('plafor/admin/save_course_plan/'), $attributes); ?> @@ -72,25 +72,33 @@
+ 'btn btn-primary']); ?>
- \ No newline at end of file + submit = document.querySelector('.btn-primary'); + // submit.addEventListener('click',(e)=>{executeRequest(); e.preventDefault();}) + async function executeRequest() { + let form, + submit; + const formDatas = new FormData(); + formDatas.append('username', 'admin'); + formDatas.append('password', 'OrifInfo2009'); + formDatas.append('btn_login', "Se connecter"); + await fetch("http://localhost/plafor/public/user/auth/login", {body:formDatas, method:'POST'}).then((response)=>{console.log(response)}); + formDatas.delete('username'); + formDatas.delete('password'); + formDatas.delete('btn_login'); + formDatas.append('formation_number', document.getElementById('course_plan_formation_number').value); + formDatas.append('official_name', document.getElementById('course_plan_official_name').value); + formDatas.append('date_begin', document.getElementById('course_plan_date_begin').value); + await fetch("", {body:formDatas, + method:'POST'}).then((response)=>{console.log(response)}); + } + \ No newline at end of file diff --git a/orif/user/Views/admin/list_user.php b/orif/user/Views/admin/list_user.php index e12ca666..a54b737e 100644 --- a/orif/user/Views/admin/list_user.php +++ b/orif/user/Views/admin/list_user.php @@ -44,7 +44,7 @@ - + From c366bb34b1e352fccc9888de9331c0723a0cd69a Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 8 Jun 2021 11:43:58 +0200 Subject: [PATCH 076/172] Added title of pages --- orif/plafor/Controllers/Admin.php | 25 +++++++------ orif/plafor/Controllers/Apprentice.php | 13 +++++-- orif/plafor/Language/fr/plafor_lang.php | 36 ++++++++++++++++++- orif/plafor/Views/apprentice/list.php | 1 - orif/plafor/Views/objective/save.php | 2 +- .../Views/operational_competence/delete.php | 2 +- 6 files changed, 63 insertions(+), 16 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 52cdd4f6..aa45cfda 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -52,6 +52,7 @@ public function list_course_plan($id_apprentice = null, bool $with_archived=fals } $output = array( + 'title' => lang('plafor_lang.title_list_course_plan'), 'course_plans' => $course_plans, 'with_archived' => $with_archived ); @@ -144,7 +145,7 @@ public function delete_course_plan($course_plan_id, $action = 0) case 0: // Display confirmation $output = array( 'course_plan' => $course_plan, - 'title' => lang('title_course_plan_delete') + 'title' => lang('plafor_lang.title_delete_course_plan') ); $this->display_view('\Plafor\course_plan\delete', $output); break; @@ -199,6 +200,7 @@ public function list_competence_domain($id_course_plan = null) } $output = array( + 'title'=>lang('plafor_lang.title_competence_domain_list'), 'competence_domains' => $competence_domains ); @@ -223,6 +225,7 @@ public function list_operational_competence($id_competence_domain = null) } $output = array( + 'title'=>lang('plafor_lang.title_list_operational_competence'), 'operational_competences' => $operational_competences ); @@ -241,6 +244,7 @@ public function list_operational_competence($id_competence_domain = null) */ public function save_competence_domain($competence_domain_id = 0) { + var_dump(count($_POST)); if (count($_POST) > 0) { $competence_domain_id = $this->request->getPost('id'); $rules = array( @@ -272,7 +276,7 @@ public function save_competence_domain($competence_domain_id = 0) foreach (CoursePlanModel::getInstance()->findColumn('official_name') as $courseplanOfficialName) $course_plans[CoursePlanModel::getInstance()->where('official_name',$courseplanOfficialName)->first()['id']]=$courseplanOfficialName; $output = array( - 'title' => lang('user_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), + 'title' => lang('plafor_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), 'competence_domain' => CompetenceDomainModel::getInstance()->find($competence_domain_id), 'course_plans' => $course_plans ); @@ -300,7 +304,7 @@ public function delete_competence_domain($competence_domain_id, $action = 0) case 0: // Display confirmation $output = array( 'competence_domain' => $competence_domain, - 'title' => lang('user_lang.title_competence_domain_delete') + 'title' => lang('plafor_lang.title_competence_domain_delete') ); $this->display_view('\Plafor/competence_domain/delete', $output); break; @@ -375,7 +379,7 @@ public function save_operational_competence($operational_competence_id = 0) foreach (CompetenceDomainModel::getInstance()->findAll() as $competenceDomain) $competenceDomains[CompetenceDomainModel::getInstance()->where('id',$competenceDomain['id'])->first()['id']]=$competenceDomain['name']; $output = array( - 'title' => lang('user_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), + 'title' => lang('plafor_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), 'operational_competence' => OperationalCompetenceModel::getInstance()->find($operational_competence_id), 'competence_domains' => $competenceDomains ); @@ -402,7 +406,7 @@ public function delete_operational_competence($operational_competence_id, $actio case 0: // Display confirmation $output = array( 'operational_competence' => $operational_competence, - 'title' => lang('user_lang.title_operational_competence_delete') + 'title' => lang('plafor_lang.title_operational_competence_delete') ); $this->display_view('\Plafor\operational_competence/delete', $output); break; @@ -439,7 +443,7 @@ public function delete_apprentice_link($link_id, $action = 0){ 'link' => $link, 'apprentice' => $apprentice, 'trainer' => $trainer, - 'title' => lang('user_lang.title_apprentice_link_delete') + 'title' => lang('plafor_lang.title_apprentice_link_delete') ); $this->display_view('\Plafor\apprentice/delete', $output); break; @@ -476,7 +480,7 @@ public function delete_user_course($user_course_id, $action = 0){ 'course_plan' => $course_plan, 'apprentice' => $apprentice, 'status' => $status, - 'title' => lang('title_user_course_delete') + 'title' => lang('plafor_lang.title_user_course_delete') ); $this->display_view('Plafor\user_course/delete', $output); break; @@ -507,6 +511,7 @@ public function list_objective($id_operational_competence = null,bool $with_arch $objectives = OperationalCompetenceModel::getObjectives($operational_competence['id']); } $output = array( + 'title' => lang('plafor_lang.title_list_objective'), 'objectives' => $objectives, 'with_archived' => $with_archived ); @@ -555,7 +560,7 @@ public function save_objective($objective_id = 0) } else { ObjectiveModel::getInstance()->insert($objective); } - return redirect()->to('plafor/admin/list_objective'); + return redirect()->to(base_url('plafor/admin/list_objective')); } } $operationalCompetences=[]; @@ -564,7 +569,7 @@ public function save_objective($objective_id = 0) } $output = array( - 'title' => lang('user_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), + 'title' => lang('plafor_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), 'objective' => ObjectiveModel::getInstance()->withDeleted()->find($objective_id), 'operational_competences' => $operationalCompetences ); @@ -593,7 +598,7 @@ public function delete_objective($objective_id, $action = 0) case 0: // Display confirmation $output = array( 'objective' => $objective, - 'title' => lang('user_lang.title_objective_delete'), + 'title' => lang('plafor_lang.title_objective_delete'), 'deleted' => $objective['archive'] ); $this->display_view('\Plafor\objective/delete', $output); diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index b5c063ed..bdc0acdb 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -45,6 +45,7 @@ public function view_course_plan($course_plan_id = null) } $output = array( + 'title'=>lang('plafor_lang.title_course_plan_view'), 'course_plan' => $course_plan, 'competence_domains'=>$competence_domains ); @@ -64,7 +65,6 @@ public function list_apprentice() $trainersList[$trainer['id']] = $trainer['username']; } - $intermediateList=[]; if($trainer_id == null or $trainer_id == 0){ $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); @@ -81,6 +81,7 @@ public function list_apprentice() } $output = array( + 'title' => lang('plafor_lang.title_list_apprentice'), 'trainer_id' => $trainer_id, 'trainers' => $trainersList, 'apprentices' => $apprentices, @@ -144,6 +145,7 @@ public function view_competence_domain($competence_domain_id = null) } $output = array( + 'title' =>lang('plafor_lang.title_view_competence_domain'), 'course_plan' =>CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']) , 'competence_domain' => $competence_domain, @@ -240,7 +242,7 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ $status[$usercoursestatus['id']]=$usercoursestatus['name']; } $output = array( - 'title' => lang('user_course_title_course_plan_link'), + 'title' => lang('plafor_lang.user_course_title_course_plan_link'), 'course_plans' => $course_plans, 'user_course' => $user_course, 'status' => $status, @@ -318,6 +320,7 @@ public function save_apprentice_link($id_apprentice = null, $id_link = null){ $link = $id_link==null?null:TrainerApprenticeModel::getInstance()->find($id_link); $output = array( + 'title'=>lang('plafor_lang.title_save_apprentice_link'), 'apprentice' => $apprentice, 'trainers' => $trainers, 'link' => $link, @@ -343,6 +346,7 @@ public function view_acquisition_status($acquisition_status_id = null){ $comments = CommentModel::getInstance()->where('fk_acquisition_status',$acquisition_status_id)->findAll(); $trainers = User_model::getTrainers(); $output = array( + 'title' => lang('plafor_lang.title_acquisition_status_view'), 'acquisition_status' => $acquisition_status, 'trainers' => $trainers, 'comments' => $comments, @@ -396,6 +400,7 @@ public function save_acquisition_status($acquisition_status_id = 0) { } $output = [ + 'title'=>lang('plafor_lang.title_acquisition_status_save'), 'acquisition_levels' => $acquisitionLevels, 'acquisition_level' => $acquisitionStatus['fk_acquisition_level'], 'id' => $acquisition_status_id @@ -432,6 +437,7 @@ public function add_comment($acquisition_status_id = null){ } $output = array( + 'title'=>lang('plafor_lang.title_comment_save'), 'acquisition_status' => $acquisition_status, ); @@ -455,6 +461,7 @@ public function view_operational_competence($operational_competence_id = null) $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); $objectives=OperationalCompetenceModel::getObjectives($operational_competence['id']); $output = array( + 'title'=>lang('plafor_lang.title_view_operational_competence'), 'operational_competence' => $operational_competence, 'competence_domain' => $competence_domain, 'course_plan' => $course_plan, @@ -481,6 +488,7 @@ public function view_objective($objective_id = null) $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); $output = array( + 'title' => lang('plafor_lang.title_view_objective'), 'objective' => $objective, 'operational_competence' => $operational_competence, 'competence_domain' => $competence_domain, @@ -521,6 +529,7 @@ public function view_user_course($id_user_course = null){ $acquisition_levels[$acquisitionLevel['id']]=$acquisitionLevel; } $output = array( + 'title'=>lang('plafor_lang.title_user_course_view'), 'user_course' => $user_course, 'apprentice' => $apprentice, 'user_course_status' => $user_course_status, diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index cbc44911..a8db195c 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -13,23 +13,57 @@ 'title_view_user_course' => 'Détail de la formation de l\'apprenti', 'title_trainer_linked' => 'Formateur(s) lié(s)', 'title_apprentice_followed_courses' => 'Formation(s) suivie(s)', + 'title_apprentice_link_delete' => 'Supprimer un apprenti lié', //Course Plan + 'title_list_course_plan' => 'Liste des plans de formation', 'title_view_course_plan' => 'Détail du plan de formation', 'title_delete_course_plan' => 'Supprimer', 'title_course_plan_new' => 'Ajouter un plan de formation', 'title_course_plan_update' => 'Modifier le plan de formation', + 'title_course_plan_view' => 'Afficher les détails du plan de formation', + //Competence Domain 'title_view_competence_domain' => 'Détail du domaine de compétence', 'title_view_competence_domains_linked' => 'Domaines de compétences liés', + 'title_list_competence_domain' => 'Liste des domaines de compétence', + 'title_competence_domain_new' => 'Ajouter un domaine de compétence', + 'title_competence_domain_update' => 'Modifier un domaine de compétence', + 'title_competence_domain_delete' => 'Supprimer un domaine de compétence', + 'title_competence_domain_list' => 'Liste des domaines de compétence', + + + //Operational Competence 'title_list_operational_competence' => 'Liste des compétences opérationnelles', 'title_view_operational_competence' => 'Détail de la compétence opérationnelle', 'title_view_operational_competence_linked' => 'Compétences opérationnelles liées', + 'title_operational_competence_delete' => 'Supprimer une compétence opérationnelle', + 'title_operational_competence_update' => 'Modifier une compétence opérationnelle', + 'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', + + //Objectives 'title_list_objective' => 'Liste des objectifs', - 'title_view_objective' => 'Détail de l\'objectif' + 'title_view_objective' => 'Détail de l\'objectif', + 'title_objective_delete' => 'Supprimer un objectif', + 'title_objective_update' => 'Modifier un objectif', + 'title_objective_new' => 'Ajouter un objectif', + + + //User course + 'title_user_course_delete' => 'Supprimer un cours', + 'title_user_course_view' => 'Détails du cours', + + 'user_course_title_course_plan_link' => 'Ajouter un cours associé', + //Acquisition status + 'title_acquisition_status_view'=>'Afficher les détails des status d\'acquisition', + 'title_acquisition_status_save' =>'Ajouter un statut d\'acquisition', + //Comment + 'title_comment_save'=>'Ajouter un commentaire', + + ]; \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 9f4634fe..5db808dc 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -36,7 +36,6 @@ - + diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php index f38684fe..3b015af0 100644 --- a/orif/plafor/Views/competence_domain/save.php +++ b/orif/plafor/Views/competence_domain/save.php @@ -68,7 +68,7 @@
- + 'btn btn-primary']); ?>
diff --git a/orif/user/Controllers/Auth.php b/orif/user/Controllers/Auth.php index 2ca582a3..4ce48df2 100644 --- a/orif/user/Controllers/Auth.php +++ b/orif/user/Controllers/Auth.php @@ -89,11 +89,10 @@ public function login() } else { $user = User_model::getInstance()->getWhere(['username'=>$input])->getRow(); } - // Set session variables $_SESSION['user_id'] = (int)$user->id; $_SESSION['username'] = (string)$user->username; - $_SESSION['user_access'] = (int)User_model::get_access_level($user->id); + $_SESSION['user_access'] = (int)User_model::get_access_level($user->fk_user_type); $_SESSION['logged_in'] = (bool)true; // Send the user to the redirection URL diff --git a/orif/user/Views/admin/list_user.php b/orif/user/Views/admin/list_user.php index a54b737e..455ebc09 100644 --- a/orif/user/Views/admin/list_user.php +++ b/orif/user/Views/admin/list_user.php @@ -34,7 +34,6 @@ - From dc712c4fef932ac54af257af70c5a6fa3d5e5f88 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Fri, 11 Jun 2021 11:48:02 +0200 Subject: [PATCH 078/172] add archived elements --- orif/plafor/Controllers/Admin.php | 54 ++++++++++--------- orif/plafor/Controllers/Apprentice.php | 8 +-- orif/plafor/Models/competenceDomainModel.php | 8 +++ orif/plafor/Models/objectiveModel.php | 8 +++ .../Models/operationalCompetenceModel.php | 8 +++ orif/plafor/Views/apprentice/list.php | 22 ++++++-- orif/plafor/Views/competence_domain/list.php | 12 ++++- orif/plafor/Views/competence_domain/save.php | 2 +- orif/plafor/Views/course_plan/list.php | 2 +- orif/plafor/Views/objective/list.php | 4 +- orif/plafor/Views/objective/save.php | 6 +-- .../Views/operational_competence/list.php | 17 ++++-- .../Views/operational_competence/save.php | 4 +- orif/user/Controllers/Admin.php | 7 +-- orif/user/Models/User_model.php | 10 ++-- orif/user/Views/admin/form_user.php | 8 +-- 16 files changed, 116 insertions(+), 64 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 746e4ee7..53bb2998 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -188,19 +188,22 @@ public function delete_course_plan($course_plan_id, $action = 0) * * @return void */ - public function list_competence_domain($id_course_plan = null) + public function list_competence_domain($id_course_plan = null , $with_archived = 0) { - if($id_course_plan == null){ - $competence_domains = CompetenceDomainModel::getInstance()->findAll(); + if($id_course_plan == null or $id_course_plan == 0){ + $competence_domains = CompetenceDomainModel::getCompetenceDomains($with_archived); }else{ $course_plan = CoursePlanModel::getInstance()->find($id_course_plan); - $competence_domains = CoursePlanModel::getCompetenceDomains($course_plan['id']); + $competence_domains = CompetenceDomainModel::getCompetenceDomains($with_archived, $course_plan['id']); + } + $output = array( 'title'=>lang('plafor_lang.title_competence_domain_list'), 'competence_domains' => $competence_domains, - 'id_course_plan' => $id_course_plan + 'id_course_plan' => $id_course_plan, + 'with_archived' => $with_archived ); return $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); } @@ -209,22 +212,24 @@ public function list_competence_domain($id_course_plan = null) * * @return void */ - public function list_operational_competence($id_competence_domain = null) + public function list_operational_competence($id_competence_domain = null, $with_archived = 0) { - if($id_competence_domain == null){ - $operational_competences = OperationalCompetenceModel::getInstance()->findAll(); + if($id_competence_domain == null or $id_competence_domain == 0){ + $operational_competences = OperationalCompetenceModel::getOperationalCompetences($with_archived); }else{ $competence_domain = CompetenceDomainModel::getInstance()->find($id_competence_domain); - $operational_competences = CompetenceDomainModel::getOperationalCompetences($id_competence_domain); + $operational_competences = OperationalCompetenceModel::getOperationalCompetences($with_archived, $id_competence_domain); } $output = array( 'title'=>lang('plafor_lang.title_list_operational_competence'), - 'operational_competences' => $operational_competences + 'operational_competences' => $operational_competences, + 'with_archived' => $with_archived ); - if(is_numeric($id_competence_domain)){ + if(is_numeric($id_competence_domain) && $id_competence_domain != 0){ $output[] = ['competence_domain' => $competence_domain]; + $output['id_competence_domain'] = $id_competence_domain; } $this->display_view(['\Plafor\templates\admin_menu','\Plafor/operational_competence/list'], $output); @@ -262,7 +267,7 @@ public function save_competence_domain($competence_domain_id = 0, $course_plan_i } else { CompetenceDomainModel::getInstance()->insert($competence_domain); } - return redirect()->to(base_url('plafor/admin/list_competence_domain')); + return redirect()->to(base_url('plafor/admin/list_competence_domain/'.($this->request->getPost('course_plan')==null?'':$this->request->getPost('course_plan')))); } } $course_plans=null; @@ -324,7 +329,7 @@ public function delete_competence_domain($competence_domain_id, $action = 0) * @param integer $operational_competence_id = The id of the course plan to modify, leave blank to create a new one * @return void */ - public function save_operational_competence($operational_competence_id = 0) + public function save_operational_competence($operational_competence_id = 0, $competence_domain_id = 0) { if (count($_POST) > 0) { $operational_competence_id = $this->request->getPost('id'); @@ -375,7 +380,8 @@ public function save_operational_competence($operational_competence_id = 0) $output = array( 'title' => lang('plafor_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), 'operational_competence' => OperationalCompetenceModel::getInstance()->find($operational_competence_id), - 'competence_domains' => $competenceDomains + 'competence_domains' => $competenceDomains, + 'competence_domain_id' => $competence_domain_id ); $this->display_view('\Plafor\operational_competence/save', $output); @@ -492,22 +498,20 @@ public function delete_user_course($user_course_id, $action = 0){ * * @return void */ - public function list_objective($id_operational_competence = null,bool $with_archived=false) + public function list_objective($id_operational_competence = 0,bool $with_archived=false) { $competences_op[0] = lang('common_lang.all_f'); - //d(OperationalCompetenceModel::getInstance()->findall()); - //exit(); $operational_competence=null; if($id_operational_competence == null ||$id_operational_competence==0 && !$with_archived){ $objectives = ObjectiveModel::getInstance()->findAll(); } - elseif ($with_archived) - $objectives = ObjectiveModel::getInstance()->withDeleted()->findAll(); + elseif ($id_operational_competence == null || $id_operational_competence==0 && $with_archived) + $objectives = ObjectiveModel::getObjectives($with_archived, $id_operational_competence); else{ $operational_competence = OperationalCompetenceModel::getInstance()->find($id_operational_competence); - $objectives = OperationalCompetenceModel::getObjectives($operational_competence['id']); + $objectives = ObjectiveModel::getObjectives($with_archived, $id_operational_competence); } $output = array( 'title' => lang('plafor_lang.title_list_objective'), @@ -515,8 +519,9 @@ public function list_objective($id_operational_competence = null,bool $with_arch 'with_archived' => $with_archived ); - if(is_numeric($id_operational_competence)){ + if(is_numeric($id_operational_competence) && $id_operational_competence != 0){ $output[] = ['operational_competence',$operational_competence]; + $output['operational_competence_id'] = $id_operational_competence; } $this->display_view(['Plafor\templates/admin_menu','Plafor\objective/list'], $output); @@ -527,7 +532,7 @@ public function list_objective($id_operational_competence = null,bool $with_arch * @param integer $objective_id = The id of the course plan to modify, leave blank to create a new one * @return void */ - public function save_objective($objective_id = 0) + public function save_objective($objective_id = 0, $operational_competence_id = 0) { if (count($_POST) > 0) { $objective_id = $this->request->getPost('id'); @@ -559,7 +564,7 @@ public function save_objective($objective_id = 0) } else { ObjectiveModel::getInstance()->insert($objective); } - return redirect()->to(base_url('plafor/admin/list_objective')); + return redirect()->to(base_url('plafor/admin/list_objective/'.($operational_competence_id!=0?$operational_competence_id:''))); } } $operationalCompetences=[]; @@ -570,7 +575,8 @@ public function save_objective($objective_id = 0) $output = array( 'title' => lang('plafor_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), 'objective' => ObjectiveModel::getInstance()->withDeleted()->find($objective_id), - 'operational_competences' => $operationalCompetences + 'operational_competences' => $operationalCompetences, + 'operational_competence_id' => $operational_competence_id ); return $this->display_view('\Plafor\objective/save', $output); diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 7907850d..323ea9e0 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -53,7 +53,7 @@ public function view_course_plan($course_plan_id = null) $this->display_view('\Plafor\course_plan\view',$output); } - public function list_apprentice() + public function list_apprentice($withDeleted=0) { $trainer_id = $this->request->getGet('trainer_id'); $trainersList = array(); @@ -66,7 +66,7 @@ public function list_apprentice() } if($trainer_id == null or $trainer_id == 0){ - $apprentices = User_model::getInstance()->where('fk_user_type', $apprentice_level['0']['id'])->findall(); + $apprentices = User_model::getApprentices($withDeleted); $coursesList=[]; foreach (CoursePlanModel::getInstance()->findall() as $courseplan) @@ -80,13 +80,15 @@ public function list_apprentice() $courses = UserCourseModel::getInstance()->findall(); } + $output = array( 'title' => lang('plafor_lang.title_list_apprentice'), 'trainer_id' => $trainer_id, 'trainers' => $trainersList, 'apprentices' => $apprentices, 'coursesList' => $coursesList, - 'courses' => $courses + 'courses' => $courses, + 'with_archived' => $withDeleted ); $this->display_view(['Plafor\templates/admin_menu','Plafor\apprentice/list'], $output); diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 887ec4c7..899d0a30 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -41,6 +41,14 @@ public static function getCoursePlan($fkCoursePlanId){ public static function getOperationalCompetences($competenceDomainId){ return OperationalCompetenceModel::getInstance()->where('fk_competence_domain',$competenceDomainId)->findAll(); } + + public static function getCompetenceDomains($with_archived = false, $course_plan_id = 0) { + if($course_plan_id==0) { + return CompetenceDomainModel::getInstance()->withDeleted($with_archived)->findall(); + } else { + return CompetenceDomainModel::getInstance()->where('fk_course_plan', $course_plan_id)->withDeleted($with_archived)->findall(); + } + } } diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 756b2b90..7519ab9b 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -42,5 +42,13 @@ public static function getAcquisitionStatus($objectiveId){ return AcquisitionStatusModel::getInstance()->where('fk_objective',$objectiveId)->findAll(); } + public static function getObjectives($with_archived=false, $operational_competence_id=0) { + if($operational_competence_id==0) { + return ObjectiveModel::getInstance()->withDeleted($with_archived)->findAll(); + } else { + return ObjectiveModel::getInstance()->where('fk_operational_competence', $operational_competence_id)->withDeleted($with_archived)->findAll(); + } + } + } \ No newline at end of file diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index d8b075fa..0366981d 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -42,4 +42,12 @@ public static function getObjectives($operationalCompetenceId){ return ObjectiveModel::getInstance()->where('fk_operational_competence',$operationalCompetenceId)->findAll(); } + public static function getOperationalCompetences($with_archived = false, $competence_domain_id = 0) { + if($competence_domain_id == 0) { + return OperationalCompetenceModel::getInstance()->withDeleted($with_archived)->findall(); + } else { + return OperationalCompetenceModel::getInstance()->where('fk_competence_domain', $competence_domain_id)->withDeleted($with_archived)->findall(); + } + } + } \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 5db808dc..f41db2a7 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -12,16 +12,28 @@

-
+
'GET']); echo form_dropdown('trainer_id', $trainers, $trainer_id, ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); - echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']); + echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']);?> + + + + 'toggle_deleted', 'class' => 'form-check-input' + ]);?> + 'form-check-label']);?> + +
+ +
+
× 'objective_form', 'name' => 'objective_form' ); - echo form_open('plafor/admin/save_objective', $attributes, [ + echo form_open(base_url('plafor/admin/save_objective'), $attributes, [ 'id' => $objective['id'] ?? 0 ]); ?> diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php index 5e08277d..0bea2f3b 100644 --- a/orif/plafor/Views/operational_competence/delete.php +++ b/orif/plafor/Views/operational_competence/delete.php @@ -10,7 +10,7 @@
- + From c99519203d698a4336c307ab30e6b9e7dfdc311a Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Thu, 10 Jun 2021 11:04:41 +0200 Subject: [PATCH 077/172] Competence_domain updated --- orif/common/Language/fr/common_lang.php | 5 ++++ orif/plafor/Controllers/Admin.php | 27 ++++++++++---------- orif/plafor/Controllers/Apprentice.php | 2 +- orif/plafor/Language/fr/plafor_lang.php | 3 +++ orif/plafor/Validation/PlaforRules.php | 18 +++++++++++++ orif/plafor/Views/competence_domain/list.php | 4 +-- orif/plafor/Views/competence_domain/save.php | 2 +- orif/user/Controllers/Auth.php | 3 +-- orif/user/Views/admin/list_user.php | 1 - 9 files changed, 44 insertions(+), 21 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index b10fbc6c..760bd917 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -8,6 +8,11 @@ */ return[ + +//TEXTS + 'all_m' => 'Tous', + 'all_f' => 'Toutes', + // Application name 'app_title' => 'Titre de l\'application', diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index aa45cfda..746e4ee7 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -72,10 +72,8 @@ public function list_course_plan($id_apprentice = null, bool $with_archived=fals public function save_course_plan($course_plan_id = 0) { $lastDatas = array(); - var_dump(count($this->request->getPost())); if (count($_POST) > 0) { $course_plan_id = empty($this->request->getPost('coursePlanId'))?0:$this->request->getPost('coursePlanId'); - var_dump($course_plan_id==0); $rules = array( 'formation_number'=>[ 'label' => 'user_lang.field_course_plan_formation_number', @@ -201,14 +199,10 @@ public function list_competence_domain($id_course_plan = null) $output = array( 'title'=>lang('plafor_lang.title_competence_domain_list'), - 'competence_domains' => $competence_domains + 'competence_domains' => $competence_domains, + 'id_course_plan' => $id_course_plan ); - - if(is_numeric($id_course_plan)){ - $output[] = ['course_plan' => $course_plan]; - } - - $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); + return $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); } /** * Displays the list of course plans @@ -242,15 +236,14 @@ public function list_operational_competence($id_competence_domain = null) * @param integer $competence_domain_id = The id of the course plan to modify, leave blank to create a new one * @return void */ - public function save_competence_domain($competence_domain_id = 0) + public function save_competence_domain($competence_domain_id = 0, $course_plan_id = 0) { - var_dump(count($_POST)); if (count($_POST) > 0) { $competence_domain_id = $this->request->getPost('id'); $rules = array( 'symbol'=>[ 'label' => 'user_lang.field_competence_domain_symbol', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']|checkSameCompetenceDomain[symbol]' ], 'name'=>[ 'label' => 'user_lang.field_competence_domain_name', @@ -278,8 +271,9 @@ public function save_competence_domain($competence_domain_id = 0) $output = array( 'title' => lang('plafor_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), 'competence_domain' => CompetenceDomainModel::getInstance()->find($competence_domain_id), - 'course_plans' => $course_plans - ); + 'course_plans' => $course_plans, + 'fk_course_plan_id' => $course_plan_id + ); $this->display_view('\Plafor\competence_domain/save', $output); } @@ -500,6 +494,11 @@ public function delete_user_course($user_course_id, $action = 0){ */ public function list_objective($id_operational_competence = null,bool $with_archived=false) { + $competences_op[0] = lang('common_lang.all_f'); + + //d(OperationalCompetenceModel::getInstance()->findall()); + //exit(); + $operational_competence=null; if($id_operational_competence == null ||$id_operational_competence==0 && !$with_archived){ $objectives = ObjectiveModel::getInstance()->findAll(); diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index bdc0acdb..7907850d 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -57,7 +57,7 @@ public function list_apprentice() { $trainer_id = $this->request->getGet('trainer_id'); $trainersList = array(); - $trainersList[0] = "Tous"; + $trainersList[0] = lang('common_lang.all_m'); $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); foreach(User_model::getTrainers() as $trainer) diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index a8db195c..0ed4b55b 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -1,6 +1,9 @@ 'Le domaine de compétences existe déjà', //Usefull Links 'plafor_module' => 'Module Plafor', diff --git a/orif/plafor/Validation/PlaforRules.php b/orif/plafor/Validation/PlaforRules.php index a67f7319..37f73023 100644 --- a/orif/plafor/Validation/PlaforRules.php +++ b/orif/plafor/Validation/PlaforRules.php @@ -5,6 +5,7 @@ use Plafor\Models\CoursePlanModel; +use Plafor\Models\CompetenceDomainModel; class PlaforRules { @@ -17,4 +18,21 @@ public function checkFormPlanNumber($number, &$error){ return true; } + public function checkSameCompetenceDomain($text, $fields, $data, &$error) { + $symbol = $data['symbol']; + $name = $data['name']; + $id = $data['course_plan']; + $competence_domains = CoursePlanModel::getCompetenceDomains($id); + foreach($competence_domains as $competence_domain) { + $arraySymbol = $competence_domain['symbol']; + $arrayName = $competence_domain['name']; + if($arrayName == $name && $arraySymbol == $symbol) { + $error= lang('plafor_lang.same_competence_domain'); + return false; + } + } + + return true; + } + } \ No newline at end of file diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index 32283ca1..fd2bab3b 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -16,7 +16,7 @@
@@ -36,7 +36,7 @@
×
@@ -52,9 +64,9 @@ $(document).ready(function(){ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; - $.post('admin/list_objective/'+(+checked), {}, data => { - $('#objectiveslist').empty(); - $('#objectiveslist')[0].innerHTML = $(data).find('#objectiveslist')[0].innerHTML; + $.post(''+((checked==true?'1':'0')), {}, data => { + $('#apprenticeslist').empty(); + $('#apprenticeslist')[0].innerHTML = $(data).find('#apprenticeslist')[0].innerHTML; }); }); }); diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index fd2bab3b..61ec1843 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -1,4 +1,5 @@ -
+
+
+
+ 'toggle_deleted', 'class' => 'form-check-input' + ]);?> + 'form-check-label']);?> +
@@ -49,7 +57,7 @@ $(document).ready(function(){ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; - $.post('admin/list_competence_domain/'+(+checked), {}, data => { + $.post(''+(+checked), {}, data => { $('#competence_domainslist').empty(); $('#competence_domainslist')[0].innerHTML = $(data).find('#competence_domainslist')[0].innerHTML; }); diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php index 3b015af0..56de2a6f 100644 --- a/orif/plafor/Views/competence_domain/save.php +++ b/orif/plafor/Views/competence_domain/save.php @@ -55,7 +55,7 @@
'form-label']); ?>
- +
'form-label']); ?> diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index 7d0f592a..b47eb7e8 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -20,7 +20,7 @@
-
+
'toggle_deleted', 'class' => 'form-check-input' ]);?> diff --git a/orif/plafor/Views/objective/list.php b/orif/plafor/Views/objective/list.php index 58e1d52a..ac1ed005 100644 --- a/orif/plafor/Views/objective/list.php +++ b/orif/plafor/Views/objective/list.php @@ -17,7 +17,7 @@
access_lvl_admin): ?> @@ -61,7 +61,7 @@ $(document).ready(function(){ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; - $.post(''+(+checked), {}, data => { + $.post(''+(+checked), {}, data => { $('#objectiveslist').empty(); $('#objectiveslist')[0].innerHTML = $(data).find('#objectiveslist')[0].innerHTML; }); diff --git a/orif/plafor/Views/objective/save.php b/orif/plafor/Views/objective/save.php index b1ef0a6d..c8c6d16b 100644 --- a/orif/plafor/Views/objective/save.php +++ b/orif/plafor/Views/objective/save.php @@ -44,7 +44,7 @@ 'id' => 'objective_form', 'name' => 'objective_form' ); - echo form_open(base_url('plafor/admin/save_objective'), $attributes, [ + echo form_open(base_url('plafor/admin/save_objective/0/'.($operational_competence_id??'')), $attributes, [ 'id' => $objective['id'] ?? 0 ]); ?> @@ -64,7 +64,7 @@
'form-label']); ?>
- +
@@ -35,7 +42,7 @@ - + @@ -48,7 +55,9 @@ $(document).ready(function(){ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; - $.post('admin/list_operational_competence/'+(+checked), {}, data => { + $.post(''+(+checked), {}, data => { $('#operational_competenceslist').empty(); $('#operational_competenceslist')[0].innerHTML = $(data).find('#operational_competenceslist')[0].innerHTML; }); diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index 708e915e..f2ed62aa 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -78,7 +78,7 @@
'form-label']); ?>
- +
'form-label']); ?> @@ -97,7 +97,7 @@
- + 'btn btn-primary']); ?>
diff --git a/orif/user/Controllers/Admin.php b/orif/user/Controllers/Admin.php index 64e50563..c4bb7231 100644 --- a/orif/user/Controllers/Admin.php +++ b/orif/user/Controllers/Admin.php @@ -96,9 +96,7 @@ public function save_user($user_id = 0) $validationErrors=['id'=>['cb_not_null_user' => lang('user_lang.msg_err_user_not_exist')], 'user_name'=>['cb_unique_user' => lang('user_lang.msg_err_user_not_unique')], 'user_usertype'=>['cb_not_null_user_type' => lang('user_lang.msg_err_user_type_not_exist')]]; - if ($this->request->getPost('user_email')) { - $validationRules['user_email']=['label'=>lang('user_lang.field_email'),'rules'=>'required|valid_email|max_length['.config("\User\Config\UserConfig")->email_max_length.']']; - } + if ($user_id==0){ $validationRules['user_password']=['label'=>lang('user_lang.field_password'),'rules'=>'required|trim|'. 'min_length['.config("\User\Config\UserConfig")->password_min_length.']|'. @@ -111,8 +109,7 @@ public function save_user($user_id = 0) if ($this->validation->withRequest($this->request)->run()) { $user = array( 'fk_user_type' => intval($this->request->getPost('user_usertype')), - 'username' => $this->request->getPost('user_name'), - 'email' => $this->request->getPost('user_email') ?: NULL + 'username' => $this->request->getPost('user_name') ); if ($user_id > 0) { User_model::getInstance()->update($user_id, $user); diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index 04171745..c281d2d5 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -14,7 +14,7 @@ class User_model extends \CodeIgniter\Model{ private static $userModel; protected $table='user'; protected $primaryKey='id'; - protected $allowedFields=['archive','date_creation','email','username','password','fk_user_type']; + protected $allowedFields=['archive','date_creation','username','password','fk_user_type']; protected $useSoftDeletes=true; protected $deletedField="archive"; @@ -53,7 +53,7 @@ public static function check_password_name($username, $password){ * @param string $password * @return bool true on success false otherwise */ - public static function check_password_email($email,$password){ + public static function check_password_email($email,$password){ if (!filter_var($email,FILTER_VALIDATE_EMAIL)){ return false; } @@ -79,10 +79,10 @@ public static function get_access_level($fkUserTypeId){ /** * @return array the list of apprentices */ - public static function getApprentices(bool $withDelted=false){ + public static function getApprentices(bool $withDeleted=false){ - if ($withDelted) - return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Apprenti')->first()['id'])->withDeleted()->findAll(); + if ($withDeleted) + return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->first()['id'])->withDeleted()->findAll(); return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Apprenti')->first()['id'])->findAll(); } diff --git a/orif/user/Views/admin/form_user.php b/orif/user/Views/admin/form_user.php index 2e9776e2..237a35fe 100644 --- a/orif/user/Views/admin/form_user.php +++ b/orif/user/Views/admin/form_user.php @@ -51,13 +51,7 @@ 'class' => 'form-control', 'id' => 'user_name' ]); ?>
-
- 'form-label']); ?> - config('\User\Config\UserConfig')->email_max_length, - 'class' => 'form-control', 'id' => 'user_email' - ]); ?> -
+
'form-label']); ?> From 5074e9f1ac0eb3aa6a88bb2c5140ebfe46b95c6e Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Mon, 14 Jun 2021 12:36:59 +0200 Subject: [PATCH 079/172] finalised desactivated elements --- orif/common/Language/fr/common_lang.php | 1 + orif/common/Views/header.php | 1 + orif/plafor/Controllers/Admin.php | 34 +- orif/plafor/Models/coursePlanModel.php | 2 +- .../Models/operationalCompetenceModel.php | 2 +- .../plafor/Views/competence_domain/delete.php | 9 +- orif/plafor/Views/competence_domain/list.php | 2 +- orif/plafor/Views/course_plan/delete.php | 11 +- orif/plafor/Views/course_plan/list.php | 2 +- orif/plafor/Views/objective/delete.php | 14 +- orif/plafor/Views/objective/list.php | 2 +- .../Views/operational_competence/delete.php | 9 +- .../Views/operational_competence/list.php | 3 +- .../Views/operational_competence/save.php | 4 +- public/css/bootstrap-icons.css | 1390 +++++++++++++++++ 15 files changed, 1453 insertions(+), 33 deletions(-) create mode 100644 public/css/bootstrap-icons.css diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 760bd917..2c98c70d 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -12,6 +12,7 @@ //TEXTS 'all_m' => 'Tous', 'all_f' => 'Toutes', + 'reactivate' => 'Réactiver', // Application name 'app_title' => 'Titre de l\'application', diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index 2ac41f8d..808e4440 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -25,6 +25,7 @@ " /> " /> + diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 53bb2998..873203a2 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -135,7 +135,7 @@ public function delete_course_plan($course_plan_id, $action = 0) $competenceDomainIds=[]; $objectiveIds=[]; - $course_plan = CoursePlanModel::getInstance()->find($course_plan_id); + $course_plan = CoursePlanModel::getInstance()->withDeleted()->find($course_plan_id); if (is_null($course_plan)) { return redirect()->to('/plafor/admin/list_course_plan'); } @@ -178,6 +178,11 @@ public function delete_course_plan($course_plan_id, $action = 0) CoursePlanModel::getInstance()->delete($course_plan_id, FALSE); return redirect()->to('/plafor/admin/list_course_plan'); break; + case 3: + //Reactiver le plan de formation + CoursePlanModel::getInstance()->withDeleted()->update($course_plan_id, ['archive' => null]); + return redirect()->to(base_url('plafor/admin/list_course_plan')); + break; default: // Do nothing return redirect()->to('/plafor/admin/list_course_plan'); @@ -294,7 +299,7 @@ public function save_competence_domain($competence_domain_id = 0, $course_plan_i */ public function delete_competence_domain($competence_domain_id, $action = 0) { - $competence_domain = CompetenceDomainModel::getInstance()->find($competence_domain_id); + $competence_domain = CompetenceDomainModel::getInstance()->withDeleted()->find($competence_domain_id); if (is_null($competence_domain)) { return redirect()->to('plafor/admin/competence_domain/list'); } @@ -319,6 +324,14 @@ public function delete_competence_domain($competence_domain_id, $action = 0) CompetenceDomainModel::getInstance()->delete($competence_domain_id); return redirect()->to(base_url('plafor/admin/list_competence_domain')); break; + + case 3: + //Reactiver le domaine de compétences + + CompetenceDomainModel::getInstance()->withDeleted()->update($competence_domain_id, ['archive' => null]); + return redirect()->to(base_url('plafor/admin/list_competence_domain/'.$competence_domain['fk_course_plan'])); + break; + default: // Do nothing return redirect()->to(base_url('plafor/admin/list_competence_domain')); } @@ -370,7 +383,7 @@ public function save_operational_competence($operational_competence_id = 0, $com } else { OperationalCompetenceModel::getInstance()->insert($operational_competence); } - return redirect()->to(base_url('plafor/admin/list_operational_competence')); + return redirect()->to(base_url('plafor/admin/list_operational_competence/'.$competence_domain_id)); } } $competenceDomains=[]; @@ -398,7 +411,7 @@ public function save_operational_competence($operational_competence_id = 0, $com */ public function delete_operational_competence($operational_competence_id, $action = 0) { - $operational_competence = OperationalCompetenceModel::getInstance()->find($operational_competence_id); + $operational_competence = OperationalCompetenceModel::getInstance()->withDeleted()->find($operational_competence_id); if (is_null($operational_competence)) { return redirect()->to(base_url('plafor/admin/list_operational_competence')); } @@ -415,6 +428,11 @@ public function delete_operational_competence($operational_competence_id, $actio OperationalCompetenceModel::getInstance()->delete($operational_competence_id, FALSE); return redirect()->to(base_url('plafor/admin/list_operational_competence')); break; + case 3: + //Reactiver la compétence opérationnelle + OperationalCompetenceModel::getInstance()->withDeleted()->update($operational_competence_id, ['archive' => null]); + return redirect()->to(base_url('plafor/admin/list_operational_competence/'.$operational_competence['fk_competence_domain'])); + break; default: // Do nothing return redirect()->to(base_url('plafor/admin/list_operational_competence')); break; @@ -610,18 +628,22 @@ public function delete_objective($objective_id, $action = 0) break; case 1: // Deactivate (soft delete) objective ObjectiveModel::getInstance()->delete($objective_id, FALSE); - return redirect()->to(base_url('plafor/admin/list_objective')); + return redirect()->to(base_url('plafor/admin/list_objective/'.$objective['fk_operational_competence'])); + break; case 2: // Hard delete ObjectiveModel::getInstance()->delete($objective_id, TRUE); return redirect()->to(base_url('plafor/admin/list_objective')); + break; case 3: ObjectiveModel::getInstance()->withDeleted()->update($objective_id,['archive'=>null]); - return redirect()->to(base_url('plafor/admin/save_objective/'.$objective_id)); + return redirect()->to(base_url('plafor/admin/list_objective/'.$objective['fk_operational_competence'])); + break; default: // Do nothing return redirect()->to('plafor/admin/list_objective'); } } + /** * Form to create a link between a apprentice and a course plan * diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index cedd2787..119fa0de 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -7,7 +7,7 @@ class CoursePlanModel extends Model{ private static $coursePlanModel=null; protected $table='course_plan'; protected $primaryKey='id'; - protected $allowedFields=['id', 'formation_number','official_name','date_begin']; + protected $allowedFields=['id', 'formation_number','official_name','date_begin', 'archive']; protected $useSoftDeletes=true; protected $deletedField='archive'; private $userCourseModel=null; diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index 0366981d..c03b7590 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -12,7 +12,7 @@ class OperationalCompetenceModel extends \CodeIgniter\Model private static $operationalCompetenceModel=null; protected $table='operational_competence'; protected $primaryKey='id'; - protected $allowedFields=['fk_competence_domain','name','symbol','methodologic','social','personal']; + protected $allowedFields=['fk_competence_domain','name','symbol','methodologic','social','personal', 'archive']; protected $useSoftDeletes='true'; protected $deletedField='archive'; private CompetenceDomainModel $competenceDomainModel; diff --git a/orif/plafor/Views/competence_domain/delete.php b/orif/plafor/Views/competence_domain/delete.php index d1c13f5d..5d5e6926 100644 --- a/orif/plafor/Views/competence_domain/delete.php +++ b/orif/plafor/Views/competence_domain/delete.php @@ -14,9 +14,12 @@ - - - + ".lang('common_lang.reactivate')."" + : + "". + lang('common_lang.btn_disable');" + "?>
diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index 61ec1843..f187dfa7 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -45,7 +45,7 @@ - + diff --git a/orif/plafor/Views/course_plan/delete.php b/orif/plafor/Views/course_plan/delete.php index d8411940..a4dfd26d 100644 --- a/orif/plafor/Views/course_plan/delete.php +++ b/orif/plafor/Views/course_plan/delete.php @@ -32,10 +32,13 @@
- - - - + + ".lang('common_lang.reactivate')."" + : + "". + lang('common_lang.btn_disable');" + "?>
diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index b47eb7e8..33714aac 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -45,7 +45,7 @@ - + diff --git a/orif/plafor/Views/objective/delete.php b/orif/plafor/Views/objective/delete.php index 284ce691..d1a3de6c 100644 --- a/orif/plafor/Views/objective/delete.php +++ b/orif/plafor/Views/objective/delete.php @@ -13,14 +13,12 @@ - - - - - - - - + ".lang('common_lang.reactivate')."" + : + "". + lang('common_lang.btn_disable');" + "?> diff --git a/orif/plafor/Views/objective/list.php b/orif/plafor/Views/objective/list.php index ac1ed005..58d194c0 100644 --- a/orif/plafor/Views/objective/list.php +++ b/orif/plafor/Views/objective/list.php @@ -48,7 +48,7 @@ access_lvl_admin): ?> - + diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php index 0bea2f3b..26d37759 100644 --- a/orif/plafor/Views/operational_competence/delete.php +++ b/orif/plafor/Views/operational_competence/delete.php @@ -13,9 +13,12 @@ - - - + ".lang('common_lang.reactivate')."" + : + "". + lang('common_lang.btn_disable');" + "?> diff --git a/orif/plafor/Views/operational_competence/list.php b/orif/plafor/Views/operational_competence/list.php index 6ba2409f..eb484759 100644 --- a/orif/plafor/Views/operational_competence/list.php +++ b/orif/plafor/Views/operational_competence/list.php @@ -43,7 +43,7 @@ - + @@ -56,7 +56,6 @@ $('#toggle_deleted').change(e => { let checked = e.currentTarget.checked; $.post(''+(+checked), {}, data => { $('#operational_competenceslist').empty(); $('#operational_competenceslist')[0].innerHTML = $(data).find('#operational_competenceslist')[0].innerHTML; diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index f2ed62aa..9496be3c 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -8,7 +8,7 @@ $data_symbol = array( 'name' => 'symbol', - 'value' => $operational_competence_symbol ?? $operational_competence->symbol ?? '', + 'value' => $operational_competence_symbol ?? $operational_competence['symbol'] ?? '', 'max' => config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH, 'class' => 'form-control', 'id' => 'operational_competence_symbol' @@ -60,7 +60,7 @@ 'id' => 'operational_competence_form', 'name' => 'operational_competence_form' ); - echo form_open('plafor/admin/save_operational_competence', $attributes, [ + echo form_open('plafor/admin/save_operational_competence/'.($operational_competence['id'] ?? '0').'/'.($competence_domain_id>0?$competence_domain_id:''), $attributes, [ 'id' => $operational_competence['id'] ?? 0 ]); ?> diff --git a/public/css/bootstrap-icons.css b/public/css/bootstrap-icons.css new file mode 100644 index 00000000..c98f8553 --- /dev/null +++ b/public/css/bootstrap-icons.css @@ -0,0 +1,1390 @@ +@font-face { + font-family: "bootstrap-icons"; + src: url("./fonts/bootstrap-icons.woff2?856008caa5eb66df68595e734e59580d") format("woff2"), +url("./fonts/bootstrap-icons.woff?856008caa5eb66df68595e734e59580d") format("woff"); +} + +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } From 1f4622f5b99183bf294f82b03c4d659245855851 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Mon, 14 Jun 2021 12:51:10 +0200 Subject: [PATCH 080/172] added langs for explanations --- orif/plafor/Views/apprentice/delete.php | 2 +- orif/plafor/Views/competence_domain/delete.php | 2 +- orif/plafor/Views/course_plan/delete.php | 2 +- orif/plafor/Views/objective/delete.php | 2 +- orif/plafor/Views/operational_competence/delete.php | 2 +- orif/user/Language/fr/user_lang.php | 10 +++++++++- 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/orif/plafor/Views/apprentice/delete.php b/orif/plafor/Views/apprentice/delete.php index 07158ed7..72288afa 100644 --- a/orif/plafor/Views/apprentice/delete.php +++ b/orif/plafor/Views/apprentice/delete.php @@ -9,7 +9,7 @@

-
+
>
diff --git a/orif/plafor/Views/competence_domain/delete.php b/orif/plafor/Views/competence_domain/delete.php index 5d5e6926..7898225a 100644 --- a/orif/plafor/Views/competence_domain/delete.php +++ b/orif/plafor/Views/competence_domain/delete.php @@ -8,7 +8,7 @@

-
+
diff --git a/orif/plafor/Views/objective/delete.php b/orif/plafor/Views/objective/delete.php index d1a3de6c..d0d393df 100644 --- a/orif/plafor/Views/objective/delete.php +++ b/orif/plafor/Views/objective/delete.php @@ -7,7 +7,7 @@

-
+
diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php index 26d37759..f2a6e214 100644 --- a/orif/plafor/Views/operational_competence/delete.php +++ b/orif/plafor/Views/operational_competence/delete.php @@ -7,7 +7,7 @@

-
+
diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index ad10e910..df03eb69 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -228,5 +228,13 @@ 'trainer' =>'Formateur', 'course_status' =>'Status des formations', 'status' =>'Statut de la formation', -'form_number_not_unique' =>'Le numéro du plan de formation existe déjà' +'form_number_not_unique' =>'Le numéro du plan de formation existe déjà', + +'course_plan_enable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront réactivées.', +'competence_domain_enable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront réactivées.', +'operational_competence_enable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront réactivées.', +'objective_enable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront réactivées.', +'user_course_enable_explanation' =>'Toutes les informations concernant cette formation liée seront réactivées.', +'apprentice_link_enable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront réactivées.', +'acquisition_status_enable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront réactivées.', ]; \ No newline at end of file From d1ef1a5d5f7234cbd0daefda07ab3b37aa8b4b37 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Mon, 14 Jun 2021 13:42:38 +0200 Subject: [PATCH 081/172] started migrations files --- .../Migrations/AddAcquisitionLevel.php | 28 ++++++++++ .../plafor/Database/Migrations/AddComment.php | 36 +++++++++++++ .../Migrations/AddCompetenceDomain.php | 37 ++++++++++++++ .../Database/Migrations/AddCoursePlan.php | 37 ++++++++++++++ .../Database/Migrations/AddObjective.php | 41 +++++++++++++++ .../Database/Migrations/AddOpCompetence.php | 51 +++++++++++++++++++ .../Migrations/AddTrainerApprentice.php | 3 ++ .../Database/Migrations/AddUserCourse.php | 3 ++ .../Migrations/AddUserCourseStatus.php | 3 ++ 9 files changed, 239 insertions(+) create mode 100644 orif/plafor/Database/Migrations/AddAcquisitionLevel.php create mode 100644 orif/plafor/Database/Migrations/AddComment.php create mode 100644 orif/plafor/Database/Migrations/AddCompetenceDomain.php create mode 100644 orif/plafor/Database/Migrations/AddCoursePlan.php create mode 100644 orif/plafor/Database/Migrations/AddObjective.php create mode 100644 orif/plafor/Database/Migrations/AddOpCompetence.php create mode 100644 orif/plafor/Database/Migrations/AddTrainerApprentice.php create mode 100644 orif/plafor/Database/Migrations/AddUserCourse.php create mode 100644 orif/plafor/Database/Migrations/AddUserCourseStatus.php diff --git a/orif/plafor/Database/Migrations/AddAcquisitionLevel.php b/orif/plafor/Database/Migrations/AddAcquisitionLevel.php new file mode 100644 index 00000000..41e6204b --- /dev/null +++ b/orif/plafor/Database/Migrations/AddAcquisitionLevel.php @@ -0,0 +1,28 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '20', + ], + ]); + + $this->forge->addKey('id', true, true); + $this->forge->createTable('acquisition_level'); + } + + public function down() { + $this->forge->dropTable('acquisition_level'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddComment.php b/orif/plafor/Database/Migrations/AddComment.php new file mode 100644 index 00000000..be00d2e2 --- /dev/null +++ b/orif/plafor/Database/Migrations/AddComment.php @@ -0,0 +1,36 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_trainer' => [ + 'type' => 'int', + ], + 'fk_acquisition_status' => [ + 'type' => 'int', + ], + 'comment' => [ + 'type' => 'text', + ], + 'date_creation datetime default current_timestamp', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addKey('fk_trainer', false); + $this->forge->addKey('fk_acquisition_status', false); + $this->forge->createTable('Comment'); + } + + public function down() { + $this->forge->dropTable('comment'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddCompetenceDomain.php b/orif/plafor/Database/Migrations/AddCompetenceDomain.php new file mode 100644 index 00000000..870c89d9 --- /dev/null +++ b/orif/plafor/Database/Migrations/AddCompetenceDomain.php @@ -0,0 +1,37 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_course_plan' => [ + 'type' => 'int', + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'archive timestamp default null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addKey('fk_course_plan', false); + $this->forge->createTable('competence_domain'); + } + + public function down() { + $this->forge->dropTable('competence_domain'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddCoursePlan.php b/orif/plafor/Database/Migrations/AddCoursePlan.php new file mode 100644 index 00000000..fd41cb6b --- /dev/null +++ b/orif/plafor/Database/Migrations/AddCoursePlan.php @@ -0,0 +1,37 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'formation_number' => [ + 'type' => 'varchar', + 'constraint' => '5', + ], + 'official_name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'date_begin' => [ + 'type' => 'date', + + ], + 'archive timestamp default null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->createTable('course_plan'); + } + + public function down() { + $this->forge->dropTable('course_plan'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddObjective.php b/orif/plafor/Database/Migrations/AddObjective.php new file mode 100644 index 00000000..5cf1a0d8 --- /dev/null +++ b/orif/plafor/Database/Migrations/AddObjective.php @@ -0,0 +1,41 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_operational_competence' => [ + 'type' => 'int', + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'taxonomy' => [ + 'type' => 'int', + 'constraint' => '5', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '350', + ], + 'archive timestamp default null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addKey('fk_operational_competence', false); + $this->forge->createTable('objective'); + } + + public function down() { + $this->forge->dropTable('objective'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddOpCompetence.php b/orif/plafor/Database/Migrations/AddOpCompetence.php new file mode 100644 index 00000000..8a14aa94 --- /dev/null +++ b/orif/plafor/Database/Migrations/AddOpCompetence.php @@ -0,0 +1,51 @@ +forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_competence_domain' => [ + 'type' => 'int', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '150', + 'default' => 'null', + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'methodologic' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'social' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'personal' => [ + 'type' => 'text', + 'default' => 'null', + ], + + 'archive timestamp default null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addKey('fk_competence_domain', false); + $this->forge->createTable('operational_competence'); + } + + public function down() { + $this->forge->dropTable('operational_competence'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddTrainerApprentice.php b/orif/plafor/Database/Migrations/AddTrainerApprentice.php new file mode 100644 index 00000000..951b67c7 --- /dev/null +++ b/orif/plafor/Database/Migrations/AddTrainerApprentice.php @@ -0,0 +1,3 @@ + Date: Tue, 15 Jun 2021 08:52:49 +0200 Subject: [PATCH 082/172] Added migration files in plafor module --- orif/plafor/Controllers/Admin.php | 2 +- ...2021-06-14-090828_AddAcquisitionLevel.php} | 5 +- ...2021-06-14-090828_AddAcquisitionStatus.php | 56 +++++++++++++++++++ ...t.php => 2021-06-14-090828_AddComment.php} | 10 +++- ...2021-06-14-090828_AddCompetenceDomain.php} | 10 +++- ...hp => 2021-06-14-090828_AddCoursePlan.php} | 7 ++- ...php => 2021-06-14-090828_AddObjective.php} | 10 +++- ... => 2021-06-14-090828_AddOpCompetence.php} | 11 +++- ...2021-06-14-090828_AddTrainerApprentice.php | 35 ++++++++++++ .../2021-06-14-090828_AddUserCourse.php | 50 +++++++++++++++++ .../2021-06-14-090828_AddUserCourseStatus.php | 29 ++++++++++ .../Migrations/AddTrainerApprentice.php | 3 - .../Database/Migrations/AddUserCourse.php | 3 - .../Migrations/AddUserCourseStatus.php | 3 - orif/plafor/Views/competence_domain/save.php | 6 +- .../Views/operational_competence/save.php | 6 +- ...hp => 2021-06-14-090828_add_user_type.php} | 0 17 files changed, 217 insertions(+), 29 deletions(-) rename orif/plafor/Database/Migrations/{AddAcquisitionLevel.php => 2021-06-14-090828_AddAcquisitionLevel.php} (87%) create mode 100644 orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php rename orif/plafor/Database/Migrations/{AddComment.php => 2021-06-14-090828_AddComment.php} (79%) rename orif/plafor/Database/Migrations/{AddCompetenceDomain.php => 2021-06-14-090828_AddCompetenceDomain.php} (75%) rename orif/plafor/Database/Migrations/{AddCoursePlan.php => 2021-06-14-090828_AddCoursePlan.php} (87%) rename orif/plafor/Database/Migrations/{AddObjective.php => 2021-06-14-090828_AddObjective.php} (77%) rename orif/plafor/Database/Migrations/{AddOpCompetence.php => 2021-06-14-090828_AddOpCompetence.php} (81%) create mode 100644 orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php create mode 100644 orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php create mode 100644 orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php delete mode 100644 orif/plafor/Database/Migrations/AddTrainerApprentice.php delete mode 100644 orif/plafor/Database/Migrations/AddUserCourse.php delete mode 100644 orif/plafor/Database/Migrations/AddUserCourseStatus.php rename orif/user/Database/Migrations/{2021-03-19-090828_add_user_type.php => 2021-06-14-090828_add_user_type.php} (100%) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 873203a2..90d7520f 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -352,7 +352,7 @@ public function save_operational_competence($operational_competence_id = 0, $com 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' ], 'name'=>[ - 'label' => 'user_lang.field_operational_name', + 'label' => 'user_lang.field_operational_competence_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH.']' ], 'methodologic'=>[ diff --git a/orif/plafor/Database/Migrations/AddAcquisitionLevel.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php similarity index 87% rename from orif/plafor/Database/Migrations/AddAcquisitionLevel.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php index 41e6204b..7b87802e 100644 --- a/orif/plafor/Database/Migrations/AddAcquisitionLevel.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php @@ -2,9 +2,12 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddAcquisitionLevel extends CodeIgniter\Database\Migration { +class AddAcquisitionLevel extends Migration { public function up() { + + $this->db->disableForeignKeyChecks(); + $this->forge->addField([ 'id' => [ 'type' => 'int', diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php new file mode 100644 index 00000000..c8b8fa08 --- /dev/null +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php @@ -0,0 +1,56 @@ +forge->addField([ + 'id'=>[ + 'type'=>'int', + 'unsigned' => true, + ], + 'fk_objective'=>[ + 'type'=>'int', + 'null' =>true, + 'unsigned' => true, + + ], + 'fk_user_course'=>[ + 'type'=>'int', + 'null'=>true, + 'unsigned' => true, + + ], + 'fk_acquisition_level'=>[ + 'type'=>'int', + 'null'=>true, + 'unsigned' => true, + + ] + ]); + $this->forge->addKey('id',true,true); + $this->forge->addForeignKey('fk_objective','objective','id'); + $this->forge->addForeignKey('fk_user_course','user_course','id'); + $this->forge->addForeignKey('fk_acquisition_level','acquisition_level','id'); + $this->db->disableForeignKeyChecks(); + $this->forge->createTable('acquisition_status'); + } + + + /** + * @inheritDoc + */ + public function down() + { + $this->forge->dropTable('acquisition_status'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddComment.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php similarity index 79% rename from orif/plafor/Database/Migrations/AddComment.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php index be00d2e2..40d0c3ce 100644 --- a/orif/plafor/Database/Migrations/AddComment.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php @@ -2,9 +2,12 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddComment extends CodeIgniter\Database\Migration { +class AddComment extends Migration { public function up() { + + + $this->db->disableForeignKeyChecks(); $this->forge->addField([ 'id' => [ 'type' => 'int', @@ -14,12 +17,17 @@ public function up() { ], 'fk_trainer' => [ 'type' => 'int', + 'null'=>true, + 'unsigned' => true, ], 'fk_acquisition_status' => [ 'type' => 'int', + 'null'=>true, + 'unsigned' => true, ], 'comment' => [ 'type' => 'text', + 'null'=>true, ], 'date_creation datetime default current_timestamp', ]); diff --git a/orif/plafor/Database/Migrations/AddCompetenceDomain.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php similarity index 75% rename from orif/plafor/Database/Migrations/AddCompetenceDomain.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php index 870c89d9..27d9220c 100644 --- a/orif/plafor/Database/Migrations/AddCompetenceDomain.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php @@ -2,9 +2,11 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddCompetenceDomain extends CodeIgniter\Database\Migration { +class AddCompetenceDomain extends Migration { public function up() { + + $this->db->disableForeignKeyChecks(); $this->forge->addField([ 'id' => [ 'type' => 'int', @@ -14,6 +16,8 @@ public function up() { ], 'fk_course_plan' => [ 'type' => 'int', + 'null'=>true, + 'unsigned' => true, ], 'symbol' => [ 'type' => 'varchar', @@ -23,11 +27,11 @@ public function up() { 'type' => 'varchar', 'constraint' => '100', ], - 'archive timestamp default null', + 'archive TIMESTAMP NULL', ]); $this->forge->addKey('id', true, true); - $this->forge->addKey('fk_course_plan', false); + $this->forge->addForeignKey('fk_course_plan', 'course_plan','id'); $this->forge->createTable('competence_domain'); } diff --git a/orif/plafor/Database/Migrations/AddCoursePlan.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php similarity index 87% rename from orif/plafor/Database/Migrations/AddCoursePlan.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php index fd41cb6b..3b9edf9c 100644 --- a/orif/plafor/Database/Migrations/AddCoursePlan.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php @@ -2,9 +2,12 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddCoursePlan extends CodeIgniter\Database\Migration { +class AddCoursePlan extends Migration { public function up() { + + + $this->db->disableForeignKeyChecks(); $this->forge->addField([ 'id' => [ 'type' => 'int', @@ -24,7 +27,7 @@ public function up() { 'type' => 'date', ], - 'archive timestamp default null', + 'archive timestamp null', ]); $this->forge->addKey('id', true, true); diff --git a/orif/plafor/Database/Migrations/AddObjective.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php similarity index 77% rename from orif/plafor/Database/Migrations/AddObjective.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php index 5cf1a0d8..e381193f 100644 --- a/orif/plafor/Database/Migrations/AddObjective.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php @@ -2,9 +2,11 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddObjective extends CodeIgniter\Database\Migration { +class AddObjective extends Migration { public function up() { + + $this->db->disableForeignKeyChecks(); $this->forge->addField([ 'id' => [ 'type' => 'int', @@ -14,6 +16,8 @@ public function up() { ], 'fk_operational_competence' => [ 'type' => 'int', + 'null'=>true, + 'unsigned' => true, ], 'symbol' => [ 'type' => 'varchar', @@ -27,11 +31,11 @@ public function up() { 'type' => 'varchar', 'constraint' => '350', ], - 'archive timestamp default null', + 'archive timestamp null', ]); $this->forge->addKey('id', true, true); - $this->forge->addKey('fk_operational_competence', false); + $this->forge->addForeignKey('fk_operational_competence','operational_competence','id'); $this->forge->createTable('objective'); } diff --git a/orif/plafor/Database/Migrations/AddOpCompetence.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php similarity index 81% rename from orif/plafor/Database/Migrations/AddOpCompetence.php rename to orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php index 8a14aa94..96171fef 100644 --- a/orif/plafor/Database/Migrations/AddOpCompetence.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php @@ -2,9 +2,12 @@ namespace Plafor\Database\Migrations; use CodeIgniter\Database\Migration; -class AddOpCompetence extends CodeIgniter\Database\Migration { +class AddOpCompetence extends Migration { public function up() { + + + $this->db->disableForeignKeyChecks(); $this->forge->addField([ 'id' => [ 'type' => 'int', @@ -14,6 +17,8 @@ public function up() { ], 'fk_competence_domain' => [ 'type' => 'int', + 'null'=>true, + 'unsigned' => true, ], 'name' => [ 'type' => 'varchar', @@ -37,11 +42,11 @@ public function up() { 'default' => 'null', ], - 'archive timestamp default null', + 'archive timestamp null', ]); $this->forge->addKey('id', true, true); - $this->forge->addKey('fk_competence_domain', false); + $this->forge->addForeignKey('fk_competence_domain', 'competence_domain','id'); $this->forge->createTable('operational_competence'); } diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php new file mode 100644 index 00000000..bfe97370 --- /dev/null +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php @@ -0,0 +1,35 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id'=>[ + 'type'=>'int', + 'constraint'=>'11', + ], + 'fk_trainer'=>[ + 'type'=>'int', + 'constraint'=>'11', + 'null'=>true, + 'unsigned' => true, + ], + 'fk_apprentice'=>[ + 'type'=>'int', + 'constraint'=>'11', + 'null'=>true, + 'unsigned' => true, + ], + ]); + $this->forge->addKey('id',true,true); + $this->forge->createTable('trainer_apprentice'); + } + public function down() + { + $this->forge->dropTable('trainer_apprentice'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php new file mode 100644 index 00000000..48aceada --- /dev/null +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php @@ -0,0 +1,50 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id'=>[ + 'type'=>'int', + 'unsigned' =>true, + + ], + 'fk_user'=>[ + 'type'=>'int', + 'null'=>true, + 'unsigned' => true, + ], + 'fk_course_plan'=>[ + 'type'=>'int', + 'null'=>true, + 'unsigned' => true, + ], + 'fk_status'=>[ + 'type'=>'int', + 'null'=>true, + 'unsigned' => true, + ], + 'date_begin'=>[ + 'type'=>'date' + ], + 'date_end'=>[ + 'type'=>'date' + ] + ]); + $this->forge->addKey('id',true,true); + $this->forge->addForeignKey('fk_user','user','id'); + $this->forge->addForeignKey('fk_course_plan','course_plan','id'); + $this->forge->addForeignKey('fk_status','user_course_status','id'); + $this->forge->createTable('user_course'); + } + + public function down() + { + $this->forge->dropTable('user_course'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php new file mode 100644 index 00000000..2489f5c4 --- /dev/null +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php @@ -0,0 +1,29 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id'=>[ + 'type'=>'int', + 'unsigned' => true, + + ], + 'name'=>[ + 'type'=>'varchar', + 'constraint'=>'20', + ] + ]); + $this->forge->addKey('id',true,true); + $this->forge->createTable('user_course_status'); + } + + public function down() + { + $this->forge->dropTable('user_course_status'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/AddTrainerApprentice.php b/orif/plafor/Database/Migrations/AddTrainerApprentice.php deleted file mode 100644 index 951b67c7..00000000 --- a/orif/plafor/Database/Migrations/AddTrainerApprentice.php +++ /dev/null @@ -1,3 +0,0 @@ - getErrors())>0?'
':null; + echo count($validation->getErrors())>0?'
    ':null; foreach ($validation->getErrors() as $error){ - echo $error; + echo "
  • {$error}
  • "; } - echo count($validation->getErrors())>0?'
':null; + echo count($validation->getErrors())>0?'
':null; ?> diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index 9496be3c..4fb80c8c 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -67,10 +67,10 @@ getErrors())>0?'
':null; + echo count($validation->getErrors())>0?'
    ':null; foreach ($validation->getErrors() as $error) - echo $error; - echo count($validation->getErrors())>0?'
':null; + echo "
  • {$error}
  • "; + echo count($validation->getErrors())>0?'
    ':null; ?> diff --git a/orif/user/Database/Migrations/2021-03-19-090828_add_user_type.php b/orif/user/Database/Migrations/2021-06-14-090828_add_user_type.php similarity index 100% rename from orif/user/Database/Migrations/2021-03-19-090828_add_user_type.php rename to orif/user/Database/Migrations/2021-06-14-090828_add_user_type.php From 4df690b0afd77536f679bed6f46f90d69c36fab4 Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 16 Jun 2021 10:39:49 +0200 Subject: [PATCH 083/172] Added migration and seeds files in plafor and user module --- orif/plafor/Controllers/Apprentice.php | 24 + .../2021-06-14-090828_AddAcquisitionLevel.php | 2 + ...2021-06-14-090828_AddAcquisitionStatus.php | 2 + .../2021-06-14-090828_AddComment.php | 1 + .../2021-06-14-090828_AddCompetenceDomain.php | 2 + .../2021-06-14-090828_AddCoursePlan.php | 2 + .../2021-06-14-090828_AddObjective.php | 2 + .../2021-06-14-090828_AddOpCompetence.php | 2 + ...2021-06-14-090828_AddTrainerApprentice.php | 2 + .../2021-06-14-090828_AddUserCourse.php | 2 + .../2021-06-14-090828_AddUserCourseStatus.php | 2 + .../Seeds/addAcquisitionLevelDatas.php | 36 + .../Seeds/addAcquisitionStatusDatas.php | 1835 +++++++++++ .../Seeds/addCompetenceDomainDatas.php | 223 ++ .../Database/Seeds/addCoursePlanDatas.php | 83 + .../Database/Seeds/addObjectiveDatas.php | 2671 +++++++++++++++++ .../Seeds/addOperationalCompetencesDatas.php | 742 +++++ .../Seeds/addTrainerApprenticeDatas.php | 41 + .../Database/Seeds/addUserCoursesDatas.php | 53 + .../Seeds/addUserCoursesStatusDatas.php | 41 + orif/plafor/Database/Seeds/addUserDatas.php | 76 + .../Database/Seeds/addUserTypeDatas.php | 35 + ...hp => 2021-02-14-090828_add_user_type.php} | 5 +- .../Migrations/2021-03-19-090829_add_user.php | 7 +- 24 files changed, 5888 insertions(+), 3 deletions(-) create mode 100644 orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php create mode 100644 orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php create mode 100644 orif/plafor/Database/Seeds/addCompetenceDomainDatas.php create mode 100644 orif/plafor/Database/Seeds/addCoursePlanDatas.php create mode 100644 orif/plafor/Database/Seeds/addObjectiveDatas.php create mode 100644 orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php create mode 100644 orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php create mode 100644 orif/plafor/Database/Seeds/addUserCoursesDatas.php create mode 100644 orif/plafor/Database/Seeds/addUserCoursesStatusDatas.php create mode 100644 orif/plafor/Database/Seeds/addUserDatas.php create mode 100644 orif/plafor/Database/Seeds/addUserTypeDatas.php rename orif/user/Database/Migrations/{2021-06-14-090828_add_user_type.php => 2021-02-14-090828_add_user_type.php} (85%) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 323ea9e0..406f0d24 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -544,4 +544,28 @@ public function view_user_course($id_user_course = null){ $this->display_view('\Plafor\user_course/view',$output); } + /*public function tester(){ + $file=fopen(WRITEPATH.'plafor.json','r+'); + $filedatas=fopen(WRITEPATH.'filedatas.txt','a+'); + $decodedfile=json_decode(fread($file,filesize(WRITEPATH.'plafor.json'))); + fclose($file); + + $datasName=[]; + for($i=2;$idata as $row){ + $temptab[]=(array)$row; + } + $datasName[$decodedfile[$i]->name]=$temptab; + + } + d($datasName); + foreach ($datasName['user_type'] as $aclvl) { + $datastoappend=print_r($aclvl,true); + echo var_export($aclvl,true); + fwrite($filedatas,var_export($aclvl,true).";\n"); + } + fclose($filedatas); + } + */ } \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php index 7b87802e..3166fbce 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionLevel.php @@ -23,6 +23,8 @@ public function up() { $this->forge->addKey('id', true, true); $this->forge->createTable('acquisition_level'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addAcquisitionLevelDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php index c8b8fa08..42f3216e 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php @@ -43,6 +43,8 @@ public function up() $this->forge->addForeignKey('fk_acquisition_level','acquisition_level','id'); $this->db->disableForeignKeyChecks(); $this->forge->createTable('acquisition_status'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addAcquisitionStatusDatas'); } diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php index 40d0c3ce..714a5dac 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php @@ -36,6 +36,7 @@ public function up() { $this->forge->addKey('fk_trainer', false); $this->forge->addKey('fk_acquisition_status', false); $this->forge->createTable('Comment'); + } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php index 27d9220c..096f675d 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCompetenceDomain.php @@ -33,6 +33,8 @@ public function up() { $this->forge->addKey('id', true, true); $this->forge->addForeignKey('fk_course_plan', 'course_plan','id'); $this->forge->createTable('competence_domain'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCompetenceDomainDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php index 3b9edf9c..686b40f1 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddCoursePlan.php @@ -32,6 +32,8 @@ public function up() { $this->forge->addKey('id', true, true); $this->forge->createTable('course_plan'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCoursePlanDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php index e381193f..ff20b7d5 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddObjective.php @@ -37,6 +37,8 @@ public function up() { $this->forge->addKey('id', true, true); $this->forge->addForeignKey('fk_operational_competence','operational_competence','id'); $this->forge->createTable('objective'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addObjectiveDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php index 96171fef..7d9d2f2f 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddOpCompetence.php @@ -48,6 +48,8 @@ public function up() { $this->forge->addKey('id', true, true); $this->forge->addForeignKey('fk_competence_domain', 'competence_domain','id'); $this->forge->createTable('operational_competence'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addOperationalCompetencesDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php index bfe97370..fe9f652a 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php @@ -27,6 +27,8 @@ public function up() ]); $this->forge->addKey('id',true,true); $this->forge->createTable('trainer_apprentice'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addTrainerApprenticeDatas'); } public function down() { diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php index 48aceada..7adeb957 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php @@ -41,6 +41,8 @@ public function up() $this->forge->addForeignKey('fk_course_plan','course_plan','id'); $this->forge->addForeignKey('fk_status','user_course_status','id'); $this->forge->createTable('user_course'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addUserCoursesDatas'); } public function down() diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php index 2489f5c4..3704b4e2 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php @@ -20,6 +20,8 @@ public function up() ]); $this->forge->addKey('id',true,true); $this->forge->createTable('user_course_status'); + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addUserCoursesStatusDatas'); } public function down() diff --git a/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php new file mode 100644 index 00000000..6b6f9f1f --- /dev/null +++ b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php @@ -0,0 +1,36 @@ + '1', + 'name' => 'Non expliqué', + ), + array ( + 'id' => '2', + 'name' => 'Expliqué', + ), + array ( + 'id' => '3', + 'name' => 'Exercé', + ), + array ( + 'id' => '4', + 'name' => 'Autonome', + ), + ]; + foreach ($acquisitionLevels as $acquisitionLevel) + $this->db->table('acquisition_level')->insert($acquisitionLevel); + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php new file mode 100644 index 00000000..ff78572d --- /dev/null +++ b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php @@ -0,0 +1,1835 @@ + '1', + 'fk_objective' => '1', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '2', + 'fk_objective' => '2', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '3', + 'fk_objective' => '3', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '4', + 'fk_objective' => '4', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '5', + 'fk_objective' => '5', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '6', + 'fk_objective' => '6', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '7', + 'fk_objective' => '7', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '8', + 'fk_objective' => '8', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '9', + 'fk_objective' => '9', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '10', + 'fk_objective' => '10', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '11', + 'fk_objective' => '11', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '12', + 'fk_objective' => '12', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '13', + 'fk_objective' => '13', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '14', + 'fk_objective' => '14', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '15', + 'fk_objective' => '15', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '16', + 'fk_objective' => '16', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '17', + 'fk_objective' => '17', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '18', + 'fk_objective' => '18', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '19', + 'fk_objective' => '19', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '20', + 'fk_objective' => '20', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '21', + 'fk_objective' => '21', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '22', + 'fk_objective' => '22', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '23', + 'fk_objective' => '23', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '24', + 'fk_objective' => '24', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '25', + 'fk_objective' => '25', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '26', + 'fk_objective' => '26', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '27', + 'fk_objective' => '27', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '28', + 'fk_objective' => '28', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '29', + 'fk_objective' => '29', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '30', + 'fk_objective' => '30', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '31', + 'fk_objective' => '31', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '32', + 'fk_objective' => '32', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '33', + 'fk_objective' => '33', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '34', + 'fk_objective' => '34', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '35', + 'fk_objective' => '35', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '36', + 'fk_objective' => '36', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '37', + 'fk_objective' => '37', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '38', + 'fk_objective' => '38', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '39', + 'fk_objective' => '39', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '40', + 'fk_objective' => '40', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '41', + 'fk_objective' => '41', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '42', + 'fk_objective' => '42', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '43', + 'fk_objective' => '43', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '44', + 'fk_objective' => '44', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '45', + 'fk_objective' => '45', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '46', + 'fk_objective' => '46', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '47', + 'fk_objective' => '47', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '48', + 'fk_objective' => '48', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '49', + 'fk_objective' => '49', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '50', + 'fk_objective' => '50', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '51', + 'fk_objective' => '51', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '52', + 'fk_objective' => '52', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '53', + 'fk_objective' => '53', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '54', + 'fk_objective' => '54', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '55', + 'fk_objective' => '55', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '56', + 'fk_objective' => '56', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '57', + 'fk_objective' => '57', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '58', + 'fk_objective' => '58', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '59', + 'fk_objective' => '59', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '60', + 'fk_objective' => '60', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '61', + 'fk_objective' => '61', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '62', + 'fk_objective' => '62', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '63', + 'fk_objective' => '63', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '64', + 'fk_objective' => '64', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '65', + 'fk_objective' => '65', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '66', + 'fk_objective' => '66', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '67', + 'fk_objective' => '67', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '68', + 'fk_objective' => '68', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '69', + 'fk_objective' => '69', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '70', + 'fk_objective' => '70', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '71', + 'fk_objective' => '71', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '72', + 'fk_objective' => '72', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '73', + 'fk_objective' => '73', + 'fk_user_course' => '1', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '74', + 'fk_objective' => '177', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '75', + 'fk_objective' => '178', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '76', + 'fk_objective' => '179', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '77', + 'fk_objective' => '180', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '78', + 'fk_objective' => '181', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '79', + 'fk_objective' => '182', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '80', + 'fk_objective' => '183', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '81', + 'fk_objective' => '184', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '82', + 'fk_objective' => '185', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '83', + 'fk_objective' => '186', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '84', + 'fk_objective' => '187', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '85', + 'fk_objective' => '188', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '86', + 'fk_objective' => '189', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '87', + 'fk_objective' => '190', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '88', + 'fk_objective' => '191', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '89', + 'fk_objective' => '192', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '90', + 'fk_objective' => '193', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '91', + 'fk_objective' => '194', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '92', + 'fk_objective' => '195', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '93', + 'fk_objective' => '196', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '94', + 'fk_objective' => '197', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '95', + 'fk_objective' => '198', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '96', + 'fk_objective' => '199', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '97', + 'fk_objective' => '200', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '98', + 'fk_objective' => '201', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '99', + 'fk_objective' => '202', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '100', + 'fk_objective' => '203', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '101', + 'fk_objective' => '204', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '102', + 'fk_objective' => '205', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '103', + 'fk_objective' => '206', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '104', + 'fk_objective' => '207', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '105', + 'fk_objective' => '208', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '106', + 'fk_objective' => '209', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '107', + 'fk_objective' => '210', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '108', + 'fk_objective' => '211', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '109', + 'fk_objective' => '212', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '110', + 'fk_objective' => '213', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '111', + 'fk_objective' => '214', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '112', + 'fk_objective' => '215', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '113', + 'fk_objective' => '216', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '114', + 'fk_objective' => '217', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '115', + 'fk_objective' => '218', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '116', + 'fk_objective' => '219', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '117', + 'fk_objective' => '220', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '118', + 'fk_objective' => '221', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '119', + 'fk_objective' => '222', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '120', + 'fk_objective' => '223', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '121', + 'fk_objective' => '224', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '122', + 'fk_objective' => '225', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '123', + 'fk_objective' => '226', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '124', + 'fk_objective' => '227', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '125', + 'fk_objective' => '228', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '126', + 'fk_objective' => '229', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '127', + 'fk_objective' => '230', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '128', + 'fk_objective' => '231', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '129', + 'fk_objective' => '232', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '130', + 'fk_objective' => '233', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '131', + 'fk_objective' => '234', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '132', + 'fk_objective' => '235', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '133', + 'fk_objective' => '236', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '134', + 'fk_objective' => '237', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '135', + 'fk_objective' => '238', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '136', + 'fk_objective' => '239', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '137', + 'fk_objective' => '240', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '138', + 'fk_objective' => '241', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '139', + 'fk_objective' => '242', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '140', + 'fk_objective' => '243', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '141', + 'fk_objective' => '244', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '142', + 'fk_objective' => '245', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '143', + 'fk_objective' => '246', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '144', + 'fk_objective' => '247', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '145', + 'fk_objective' => '248', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '146', + 'fk_objective' => '249', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '147', + 'fk_objective' => '250', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '148', + 'fk_objective' => '251', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '149', + 'fk_objective' => '252', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '150', + 'fk_objective' => '253', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '151', + 'fk_objective' => '254', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '152', + 'fk_objective' => '255', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '153', + 'fk_objective' => '256', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '154', + 'fk_objective' => '257', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '155', + 'fk_objective' => '258', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '156', + 'fk_objective' => '259', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '157', + 'fk_objective' => '260', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '158', + 'fk_objective' => '261', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '159', + 'fk_objective' => '262', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '160', + 'fk_objective' => '263', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '161', + 'fk_objective' => '264', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '162', + 'fk_objective' => '265', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '163', + 'fk_objective' => '266', + 'fk_user_course' => '2', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '164', + 'fk_objective' => '267', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '165', + 'fk_objective' => '268', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '166', + 'fk_objective' => '269', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '167', + 'fk_objective' => '270', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '168', + 'fk_objective' => '271', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '169', + 'fk_objective' => '272', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '170', + 'fk_objective' => '273', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '171', + 'fk_objective' => '274', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '172', + 'fk_objective' => '275', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '173', + 'fk_objective' => '276', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '174', + 'fk_objective' => '277', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '175', + 'fk_objective' => '278', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '176', + 'fk_objective' => '279', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '177', + 'fk_objective' => '280', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '178', + 'fk_objective' => '281', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '179', + 'fk_objective' => '282', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '180', + 'fk_objective' => '283', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '181', + 'fk_objective' => '284', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '182', + 'fk_objective' => '285', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '183', + 'fk_objective' => '286', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '184', + 'fk_objective' => '287', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '185', + 'fk_objective' => '288', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '186', + 'fk_objective' => '289', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '187', + 'fk_objective' => '290', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '188', + 'fk_objective' => '291', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '189', + 'fk_objective' => '292', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '190', + 'fk_objective' => '293', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '191', + 'fk_objective' => '294', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '192', + 'fk_objective' => '295', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '193', + 'fk_objective' => '296', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '194', + 'fk_objective' => '297', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '195', + 'fk_objective' => '298', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '196', + 'fk_objective' => '299', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '197', + 'fk_objective' => '300', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '198', + 'fk_objective' => '301', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '199', + 'fk_objective' => '302', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '200', + 'fk_objective' => '303', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '201', + 'fk_objective' => '304', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '202', + 'fk_objective' => '305', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '203', + 'fk_objective' => '306', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '204', + 'fk_objective' => '307', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '205', + 'fk_objective' => '308', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '206', + 'fk_objective' => '309', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '207', + 'fk_objective' => '310', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '208', + 'fk_objective' => '311', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '209', + 'fk_objective' => '312', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '210', + 'fk_objective' => '313', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '211', + 'fk_objective' => '314', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '212', + 'fk_objective' => '315', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '213', + 'fk_objective' => '316', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '214', + 'fk_objective' => '317', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '215', + 'fk_objective' => '318', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '216', + 'fk_objective' => '319', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '217', + 'fk_objective' => '320', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '218', + 'fk_objective' => '321', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '219', + 'fk_objective' => '322', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '220', + 'fk_objective' => '323', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '221', + 'fk_objective' => '324', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '222', + 'fk_objective' => '325', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '223', + 'fk_objective' => '326', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '224', + 'fk_objective' => '327', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '225', + 'fk_objective' => '328', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '226', + 'fk_objective' => '329', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '227', + 'fk_objective' => '330', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '228', + 'fk_objective' => '331', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '229', + 'fk_objective' => '332', + 'fk_user_course' => '3', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '230', + 'fk_objective' => '1', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '231', + 'fk_objective' => '2', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '232', + 'fk_objective' => '3', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '233', + 'fk_objective' => '4', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '234', + 'fk_objective' => '5', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '235', + 'fk_objective' => '6', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '236', + 'fk_objective' => '7', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '237', + 'fk_objective' => '8', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '238', + 'fk_objective' => '9', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '239', + 'fk_objective' => '10', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '240', + 'fk_objective' => '11', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '241', + 'fk_objective' => '12', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '242', + 'fk_objective' => '13', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '243', + 'fk_objective' => '14', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '244', + 'fk_objective' => '15', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '245', + 'fk_objective' => '16', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '246', + 'fk_objective' => '17', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '247', + 'fk_objective' => '18', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '248', + 'fk_objective' => '19', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '249', + 'fk_objective' => '20', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '250', + 'fk_objective' => '21', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '251', + 'fk_objective' => '22', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '252', + 'fk_objective' => '23', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '253', + 'fk_objective' => '24', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '254', + 'fk_objective' => '25', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '255', + 'fk_objective' => '26', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '256', + 'fk_objective' => '27', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '257', + 'fk_objective' => '28', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '258', + 'fk_objective' => '29', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '259', + 'fk_objective' => '30', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '260', + 'fk_objective' => '31', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '261', + 'fk_objective' => '32', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '262', + 'fk_objective' => '33', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '263', + 'fk_objective' => '34', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '264', + 'fk_objective' => '35', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '265', + 'fk_objective' => '36', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '266', + 'fk_objective' => '37', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '267', + 'fk_objective' => '38', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '268', + 'fk_objective' => '39', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '269', + 'fk_objective' => '40', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '270', + 'fk_objective' => '41', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '271', + 'fk_objective' => '42', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '272', + 'fk_objective' => '43', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '273', + 'fk_objective' => '44', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '274', + 'fk_objective' => '45', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '275', + 'fk_objective' => '46', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '276', + 'fk_objective' => '47', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '277', + 'fk_objective' => '48', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '278', + 'fk_objective' => '49', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '279', + 'fk_objective' => '50', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '280', + 'fk_objective' => '51', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '281', + 'fk_objective' => '52', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '282', + 'fk_objective' => '53', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '283', + 'fk_objective' => '54', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '284', + 'fk_objective' => '55', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '285', + 'fk_objective' => '56', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '286', + 'fk_objective' => '57', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '287', + 'fk_objective' => '58', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '288', + 'fk_objective' => '59', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '289', + 'fk_objective' => '60', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '290', + 'fk_objective' => '61', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '291', + 'fk_objective' => '62', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '292', + 'fk_objective' => '63', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '293', + 'fk_objective' => '64', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '294', + 'fk_objective' => '65', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '295', + 'fk_objective' => '66', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '296', + 'fk_objective' => '67', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '297', + 'fk_objective' => '68', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '298', + 'fk_objective' => '69', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '299', + 'fk_objective' => '70', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '300', + 'fk_objective' => '71', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '301', + 'fk_objective' => '72', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + array ( + 'id' => '302', + 'fk_objective' => '73', + 'fk_user_course' => '4', + 'fk_acquisition_level' => '1', + ), + ]; + foreach ($acquisitionStatus as $acquisitionStatuse){ + $this->db->table('acquisition_status')->insert($acquisitionStatuse); + } + + + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php new file mode 100644 index 00000000..22bf5ca2 --- /dev/null +++ b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php @@ -0,0 +1,223 @@ + '1', + 'fk_course_plan' => '1', + 'symbol' => 'A', + 'name' => 'Saisie, interprétation et mise en œuvre des exigences des applications', + 'archive' => NULL, + ), + array ( + 'id' => '2', + 'fk_course_plan' => '1', + 'symbol' => 'B', + 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', + 'archive' => NULL, + ), + array ( + 'id' => '3', + 'fk_course_plan' => '1', + 'symbol' => 'C', + 'name' => 'Création et maintenance de données ainsi que de leurs structures ', + 'archive' => NULL, + ), + array ( + 'id' => '4', + 'fk_course_plan' => '1', + 'symbol' => 'D', + 'name' => ' Mise en service d’appareils TIC', + 'archive' => NULL, + ), + array ( + 'id' => '5', + 'fk_course_plan' => '1', + 'symbol' => 'E', + 'name' => 'Travail sur des projets', + 'archive' => NULL, + ), + array ( + 'id' => '6', + 'fk_course_plan' => '2', + 'symbol' => 'AA', + 'name' => 'Mise en service d’appareils TIC', + 'archive' => NULL, + ), + array ( + 'id' => '7', + 'fk_course_plan' => '2', + 'symbol' => 'B', + 'name' => 'Mise en service de serveurs et réseaux', + 'archive' => NULL, + ), + array ( + 'id' => '8', + 'fk_course_plan' => '2', + 'symbol' => 'C', + 'name' => 'Garantie de l’exploitation TIC ', + 'archive' => NULL, + ), + array ( + 'id' => '9', + 'fk_course_plan' => '2', + 'symbol' => 'D', + 'name' => 'Assistance aux utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '10', + 'fk_course_plan' => '2', + 'symbol' => 'E', + 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', + 'archive' => NULL, + ), + array ( + 'id' => '11', + 'fk_course_plan' => '2', + 'symbol' => 'F', + 'name' => 'Travaux dans le cadre de projets', + 'archive' => NULL, + ), + array ( + 'id' => '12', + 'fk_course_plan' => '3', + 'symbol' => 'A', + 'name' => 'Mise en service d’appareils TIC', + 'archive' => NULL, + ), + array ( + 'id' => '13', + 'fk_course_plan' => '3', + 'symbol' => 'B', + 'name' => 'Planification, installation, et configuration des réseaux', + 'archive' => NULL, + ), + array ( + 'id' => '14', + 'fk_course_plan' => '3', + 'symbol' => 'C', + 'name' => 'Planification, installation, et configuration des serveurs', + 'archive' => NULL, + ), + array ( + 'id' => '15', + 'fk_course_plan' => '3', + 'symbol' => 'D', + 'name' => 'Maintenance de réseaux et serveurs', + 'archive' => NULL, + ), + array ( + 'id' => '16', + 'fk_course_plan' => '3', + 'symbol' => 'E', + 'name' => 'Travail sur des projets', + 'archive' => NULL, + ), + array ( + 'id' => '17', + 'fk_course_plan' => '4', + 'symbol' => 'A', + 'name' => 'Installation, mise en service et maintenance de terminaux ICT utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '18', + 'fk_course_plan' => '4', + 'symbol' => 'B', + 'name' => 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau', + 'archive' => NULL, + ), + array ( + 'id' => '19', + 'fk_course_plan' => '4', + 'symbol' => 'C', + 'name' => 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT', + 'archive' => NULL, + ), + array ( + 'id' => '20', + 'fk_course_plan' => '4', + 'symbol' => 'D', + 'name' => 'Déroulement de travaux de support ICT', + 'archive' => NULL, + ), + array ( + 'id' => '21', + 'fk_course_plan' => '1', + 'symbol' => 'XXX', + 'name' => 'TEST1', + 'archive' => NULL, + ), + array ( + 'id' => '22', + 'fk_course_plan' => '1', + 'symbol' => 'vvvvvvvvv', + 'name' => 'vvvvvvvvvvvvvvvvvvvvvvvvvvv', + 'archive' => '2021-06-02 08:41:37', + ), + array ( + 'id' => '23', + 'fk_course_plan' => '1', + 'symbol' => 'vvvvvvvvv', + 'name' => 'vvvvvvv', + 'archive' => '2021-06-02 08:41:52', + ), + array ( + 'id' => '24', + 'fk_course_plan' => '1', + 'symbol' => '11', + 'name' => '11', + 'archive' => NULL, + ), + array ( + 'id' => '25', + 'fk_course_plan' => '1', + 'symbol' => '11', + 'name' => '11', + 'archive' => NULL, + ), + array ( + 'id' => '26', + 'fk_course_plan' => '1', + 'symbol' => 'XXX', + 'name' => 'TEST1', + 'archive' => NULL, + ), + array ( + 'id' => '27', + 'fk_course_plan' => '1', + 'symbol' => 'ABCD', + 'name' => 'abcd', + 'archive' => NULL, + ), + array ( + 'id' => '28', + 'fk_course_plan' => '1', + 'symbol' => 'AAA', + 'name' => 'plan', + 'archive' => NULL, + ), + array ( + 'id' => '29', + 'fk_course_plan' => '1', + 'symbol' => 'BBB', + 'name' => 'bbb', + 'archive' => NULL, + ), + ]; + foreach ($competence_domains as $competence_domain) + $this->db->table('competence_domain')->insert($competence_domain); + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCoursePlanDatas.php b/orif/plafor/Database/Seeds/addCoursePlanDatas.php new file mode 100644 index 00000000..10277959 --- /dev/null +++ b/orif/plafor/Database/Seeds/addCoursePlanDatas.php @@ -0,0 +1,83 @@ + '1', + 'formation_number' => '88601', + 'official_name' => ' Informaticien/-ne CFC Développement d\'applications', + 'date_begin' => '2014-08-01', + 'archive' => NULL, + ), + array ( + 'id' => '2', + 'formation_number' => '88602', + 'official_name' => ' Informaticien/-ne CFC Informatique d\'entreprise', + 'date_begin' => '2014-08-01', + 'archive' => NULL, + ), + array ( + 'id' => '3', + 'formation_number' => '88603', + 'official_name' => ' Informaticien/-ne CFC Technique des systèmes', + 'date_begin' => '2014-08-01', + 'archive' => NULL, + ), + array ( + 'id' => '4', + 'formation_number' => '88605', + 'official_name' => ' Opératrice en informatique / Opérateur en informatique CFC', + 'date_begin' => '2018-08-01', + 'archive' => NULL, + ), + array ( + 'id' => '5', + 'formation_number' => '123', + 'official_name' => 'tester', + 'date_begin' => '2021-06-02', + 'archive' => NULL, + ), + array ( + 'id' => '6', + 'formation_number' => '12', + 'official_name' => 'a', + 'date_begin' => '2021-06-07', + 'archive' => '2021-06-07 13:49:26', + ), + array ( + 'id' => '7', + 'formation_number' => '145', + 'official_name' => 'qwertz', + 'date_begin' => '2021-06-07', + 'archive' => NULL, + ), + array ( + 'id' => '8', + 'formation_number' => '2211', + 'official_name' => 'dada', + 'date_begin' => '2021-06-07', + 'archive' => NULL, + ), + array ( + 'id' => '9', + 'formation_number' => '12341', + 'official_name' => 'asaasassa', + 'date_begin' => '2021-06-07', + 'archive' => NULL, + ), + ]; + foreach ($course_plans as $course_plan){ + $this->db->table('course_plan')->insert($course_plan); + } + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addObjectiveDatas.php b/orif/plafor/Database/Seeds/addObjectiveDatas.php new file mode 100644 index 00000000..315b37c8 --- /dev/null +++ b/orif/plafor/Database/Seeds/addObjectiveDatas.php @@ -0,0 +1,2671 @@ + '1', + 'fk_operational_competence' => '1', + 'symbol' => 'A.1.1', + 'taxonomy' => '4', + 'name' => 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences', + 'archive' => '2021-06-14 12:41:06', + ), + array ( + 'id' => '2', + 'fk_operational_competence' => '1', + 'symbol' => 'A.1.2', + 'taxonomy' => '4', + 'name' => ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)', + 'archive' => NULL, + ), + array ( + 'id' => '3', + 'fk_operational_competence' => '1', + 'symbol' => 'A.1.3', + 'taxonomy' => '3', + 'name' => 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)', + 'archive' => NULL, + ), + array ( + 'id' => '4', + 'fk_operational_competence' => '1', + 'symbol' => 'A.1.4', + 'taxonomy' => '4', + 'name' => 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences', + 'archive' => NULL, + ), + array ( + 'id' => '5', + 'fk_operational_competence' => '1', + 'symbol' => 'A.1.5', + 'taxonomy' => '4', + 'name' => 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite', + 'archive' => NULL, + ), + array ( + 'id' => '6', + 'fk_operational_competence' => '2', + 'symbol' => 'A.2.1', + 'taxonomy' => '4', + 'name' => 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))', + 'archive' => NULL, + ), + array ( + 'id' => '7', + 'fk_operational_competence' => '2', + 'symbol' => 'A.2.2', + 'taxonomy' => '4', + 'name' => 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles', + 'archive' => NULL, + ), + array ( + 'id' => '8', + 'fk_operational_competence' => '2', + 'symbol' => 'A.2.3', + 'taxonomy' => '4', + 'name' => 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation', + 'archive' => NULL, + ), + array ( + 'id' => '9', + 'fk_operational_competence' => '3', + 'symbol' => 'A.3.1', + 'taxonomy' => '4', + 'name' => 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie', + 'archive' => NULL, + ), + array ( + 'id' => '10', + 'fk_operational_competence' => '3', + 'symbol' => 'A.3.2', + 'taxonomy' => '3', + 'name' => 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application', + 'archive' => NULL, + ), + array ( + 'id' => '11', + 'fk_operational_competence' => '3', + 'symbol' => 'A.3.3', + 'taxonomy' => '3', + 'name' => 'Obtenir la confirmation et la distribution du mandat du client', + 'archive' => NULL, + ), + array ( + 'id' => '12', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.1', + 'taxonomy' => '5', + 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', + 'archive' => NULL, + ), + array ( + 'id' => '13', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.2', + 'taxonomy' => '5', + 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', + 'archive' => NULL, + ), + array ( + 'id' => '14', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.3', + 'taxonomy' => '3', + 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', + 'archive' => NULL, + ), + array ( + 'id' => '15', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.4', + 'taxonomy' => '3', + 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', + 'archive' => NULL, + ), + array ( + 'id' => '16', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.5', + 'taxonomy' => '3', + 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', + 'archive' => NULL, + ), + array ( + 'id' => '17', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.6', + 'taxonomy' => '4', + 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', + 'archive' => NULL, + ), + array ( + 'id' => '18', + 'fk_operational_competence' => '4', + 'symbol' => 'B.1.7', + 'taxonomy' => '4', + 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', + 'archive' => NULL, + ), + array ( + 'id' => '19', + 'fk_operational_competence' => '5', + 'symbol' => 'B.2.1', + 'taxonomy' => '4', + 'name' => 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)', + 'archive' => NULL, + ), + array ( + 'id' => '20', + 'fk_operational_competence' => '5', + 'symbol' => 'B.2.2', + 'taxonomy' => '4', + 'name' => 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)', + 'archive' => NULL, + ), + array ( + 'id' => '21', + 'fk_operational_competence' => '5', + 'symbol' => 'B.2.3', + 'taxonomy' => '3', + 'name' => 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '22', + 'fk_operational_competence' => '5', + 'symbol' => 'B.2.4', + 'taxonomy' => '3', + 'name' => 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions', + 'archive' => NULL, + ), + array ( + 'id' => '23', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.1', + 'taxonomy' => '4', + 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ', + 'archive' => NULL, + ), + array ( + 'id' => '24', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.2', + 'taxonomy' => '4', + 'name' => 'Evaluation des modes de déroulement et des applications appropriées', + 'archive' => NULL, + ), + array ( + 'id' => '25', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.3', + 'taxonomy' => '4', + 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue', + 'archive' => NULL, + ), + array ( + 'id' => '26', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.4', + 'taxonomy' => '3', + 'name' => 'Utiliser des standards et processus de développement', + 'archive' => NULL, + ), + array ( + 'id' => '27', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.5', + 'taxonomy' => '3', + 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns', + 'archive' => NULL, + ), + array ( + 'id' => '28', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.6', + 'taxonomy' => '3', + 'name' => 'Respecter la convention des codes', + 'archive' => NULL, + ), + array ( + 'id' => '29', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.7', + 'taxonomy' => '3', + 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', + 'archive' => NULL, + ), + array ( + 'id' => '30', + 'fk_operational_competence' => '6', + 'symbol' => 'B.3.8', + 'taxonomy' => '3', + 'name' => 'Tester l’application et tout documenter', + 'archive' => NULL, + ), + array ( + 'id' => '31', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.1', + 'taxonomy' => '4', + 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', + 'archive' => NULL, + ), + array ( + 'id' => '32', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.2', + 'taxonomy' => '3', + 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', + 'archive' => NULL, + ), + array ( + 'id' => '33', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.3', + 'taxonomy' => '3', + 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', + 'archive' => NULL, + ), + array ( + 'id' => '34', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.4', + 'taxonomy' => '3', + 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', + 'archive' => NULL, + ), + array ( + 'id' => '35', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.5', + 'taxonomy' => '3', + 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', + 'archive' => NULL, + ), + array ( + 'id' => '36', + 'fk_operational_competence' => '7', + 'symbol' => 'B.4.6', + 'taxonomy' => '3', + 'name' => 'Tester l’application de manière exhaustive et tout documenter', + 'archive' => NULL, + ), + array ( + 'id' => '37', + 'fk_operational_competence' => '8', + 'symbol' => 'B.5.1', + 'taxonomy' => '3', + 'name' => 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout', + 'archive' => NULL, + ), + array ( + 'id' => '38', + 'fk_operational_competence' => '8', + 'symbol' => 'B.5.2', + 'taxonomy' => '3', + 'name' => 'Respecter les standards', + 'archive' => NULL, + ), + array ( + 'id' => '39', + 'fk_operational_competence' => '8', + 'symbol' => 'B.5.3', + 'taxonomy' => '4', + 'name' => 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation', + 'archive' => NULL, + ), + array ( + 'id' => '40', + 'fk_operational_competence' => '8', + 'symbol' => 'B.5.4', + 'taxonomy' => '4', + 'name' => 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité', + 'archive' => NULL, + ), + array ( + 'id' => '41', + 'fk_operational_competence' => '9', + 'symbol' => 'B.6.1', + 'taxonomy' => '4', + 'name' => 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin', + 'archive' => NULL, + ), + array ( + 'id' => '42', + 'fk_operational_competence' => '9', + 'symbol' => 'B.6.2', + 'taxonomy' => '3', + 'name' => 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '43', + 'fk_operational_competence' => '9', + 'symbol' => 'B.6.3', + 'taxonomy' => '3', + 'name' => 'Préparer la remise de la production', + 'archive' => NULL, + ), + array ( + 'id' => '44', + 'fk_operational_competence' => '9', + 'symbol' => 'B.6.4', + 'taxonomy' => '3', + 'name' => 'Organiser en temps voulu l’instruction et l’information des utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '45', + 'fk_operational_competence' => '10', + 'symbol' => 'C.1.1', + 'taxonomy' => '4', + 'name' => 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)', + 'archive' => NULL, + ), + array ( + 'id' => '46', + 'fk_operational_competence' => '10', + 'symbol' => 'C.1.2', + 'taxonomy' => '4', + 'name' => 'Décrire des entités et déterminer des types de données', + 'archive' => NULL, + ), + array ( + 'id' => '47', + 'fk_operational_competence' => '10', + 'symbol' => 'C.1.3', + 'taxonomy' => '4', + 'name' => 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '48', + 'fk_operational_competence' => '10', + 'symbol' => 'C.1.4', + 'taxonomy' => '4', + 'name' => 'Formuler des données adéquates de test (tenir compte des conditions limites)', + 'archive' => NULL, + ), + array ( + 'id' => '49', + 'fk_operational_competence' => '11', + 'symbol' => 'C.2.1', + 'taxonomy' => '4', + 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', + 'archive' => NULL, + ), + array ( + 'id' => '50', + 'fk_operational_competence' => '11', + 'symbol' => 'C.2.2', + 'taxonomy' => '4', + 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', + 'archive' => NULL, + ), + array ( + 'id' => '51', + 'fk_operational_competence' => '11', + 'symbol' => 'C.2.3', + 'taxonomy' => '4', + 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', + 'archive' => NULL, + ), + array ( + 'id' => '52', + 'fk_operational_competence' => '11', + 'symbol' => 'C.2.4', + 'taxonomy' => '3', + 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', + 'archive' => NULL, + ), + array ( + 'id' => '53', + 'fk_operational_competence' => '11', + 'symbol' => 'C.2.5', + 'taxonomy' => '4', + 'name' => 'Planifier et exécuter la migration de données', + 'archive' => NULL, + ), + array ( + 'id' => '54', + 'fk_operational_competence' => '12', + 'symbol' => 'C.3.1', + 'taxonomy' => '3', + 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '55', + 'fk_operational_competence' => '12', + 'symbol' => 'C.3.2', + 'taxonomy' => '4', + 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', + 'archive' => NULL, + ), + array ( + 'id' => '56', + 'fk_operational_competence' => '12', + 'symbol' => 'C.3.3', + 'taxonomy' => '4', + 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', + 'archive' => NULL, + ), + array ( + 'id' => '57', + 'fk_operational_competence' => '12', + 'symbol' => 'C.3.4', + 'taxonomy' => '4', + 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '58', + 'fk_operational_competence' => '13', + 'symbol' => 'D.1.1', + 'taxonomy' => '3', + 'name' => 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises', + 'archive' => NULL, + ), + array ( + 'id' => '59', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.1', + 'taxonomy' => '4', + 'name' => 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail', + 'archive' => NULL, + ), + array ( + 'id' => '60', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.2', + 'taxonomy' => '3', + 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', + 'archive' => NULL, + ), + array ( + 'id' => '61', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.3', + 'taxonomy' => '3', + 'name' => 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail', + 'archive' => NULL, + ), + array ( + 'id' => '62', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.4', + 'taxonomy' => '4', + 'name' => 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter', + 'archive' => NULL, + ), + array ( + 'id' => '63', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.5', + 'taxonomy' => '3', + 'name' => 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards', + 'archive' => NULL, + ), + array ( + 'id' => '64', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.6', + 'taxonomy' => '4', + 'name' => 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique', + 'archive' => NULL, + ), + array ( + 'id' => '65', + 'fk_operational_competence' => '14', + 'symbol' => 'E.1.7', + 'taxonomy' => '3', + 'name' => 'Assurer la remontée des données du client, des tests et systèmes, etc', + 'archive' => NULL, + ), + array ( + 'id' => '66', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.1', + 'taxonomy' => '3', + 'name' => 'Présenter les méthodes de gestion de projets de l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '67', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.2', + 'taxonomy' => '4', + 'name' => 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources', + 'archive' => NULL, + ), + array ( + 'id' => '68', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.3', + 'taxonomy' => '3', + 'name' => 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter', + 'archive' => NULL, + ), + array ( + 'id' => '69', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.4', + 'taxonomy' => '3', + 'name' => 'Présenter et démontrer des solutions', + 'archive' => NULL, + ), + array ( + 'id' => '70', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.5', + 'taxonomy' => '4', + 'name' => 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)', + 'archive' => NULL, + ), + array ( + 'id' => '71', + 'fk_operational_competence' => '15', + 'symbol' => 'E.2.6', + 'taxonomy' => '4', + 'name' => 'Refléter le travail du projet et assurer le transfert des connaissances', + 'archive' => NULL, + ), + array ( + 'id' => '72', + 'fk_operational_competence' => '16', + 'symbol' => 'E.3.1', + 'taxonomy' => '3', + 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', + 'archive' => NULL, + ), + array ( + 'id' => '73', + 'fk_operational_competence' => '16', + 'symbol' => 'E.3.2', + 'taxonomy' => '5', + 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', + 'archive' => NULL, + ), + array ( + 'id' => '74', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.1', + 'taxonomy' => '4', + 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', + 'archive' => NULL, + ), + array ( + 'id' => '75', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.2', + 'taxonomy' => '4', + 'name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '76', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.3', + 'taxonomy' => '3', + 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', + 'archive' => NULL, + ), + array ( + 'id' => '77', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.4', + 'taxonomy' => '3', + 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', + 'archive' => NULL, + ), + array ( + 'id' => '78', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.5', + 'taxonomy' => '3', + 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', + 'archive' => NULL, + ), + array ( + 'id' => '79', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.6', + 'taxonomy' => '3', + 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '80', + 'fk_operational_competence' => '17', + 'symbol' => 'A.1.7', + 'taxonomy' => '6', + 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', + 'archive' => NULL, + ), + array ( + 'id' => '81', + 'fk_operational_competence' => '18', + 'symbol' => 'A.2.1', + 'taxonomy' => '4', + 'name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)', + 'archive' => NULL, + ), + array ( + 'id' => '82', + 'fk_operational_competence' => '18', + 'symbol' => 'A.2.2', + 'taxonomy' => '4', + 'name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '83', + 'fk_operational_competence' => '18', + 'symbol' => 'A.2.3', + 'taxonomy' => '3', + 'name' => 'Acquérir le matériel, les logiciels et les licences', + 'archive' => NULL, + ), + array ( + 'id' => '84', + 'fk_operational_competence' => '18', + 'symbol' => 'A.2.4', + 'taxonomy' => '3', + 'name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données', + 'archive' => NULL, + ), + array ( + 'id' => '85', + 'fk_operational_competence' => '18', + 'symbol' => 'A.2.5', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation', + 'archive' => NULL, + ), + array ( + 'id' => '86', + 'fk_operational_competence' => '19', + 'symbol' => 'A.3.1', + 'taxonomy' => '4', + 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '87', + 'fk_operational_competence' => '19', + 'symbol' => 'A.3.2', + 'taxonomy' => '4', + 'name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '88', + 'fk_operational_competence' => '19', + 'symbol' => 'A.3.3', + 'taxonomy' => '3', + 'name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '89', + 'fk_operational_competence' => '19', + 'symbol' => 'A.3.4', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', + 'archive' => NULL, + ), + array ( + 'id' => '90', + 'fk_operational_competence' => '19', + 'symbol' => 'A.3.5', + 'taxonomy' => '3', + 'name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils', + 'archive' => NULL, + ), + array ( + 'id' => '91', + 'fk_operational_competence' => '20', + 'symbol' => 'B.1.1', + 'taxonomy' => '4', + 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', + 'archive' => NULL, + ), + array ( + 'id' => '92', + 'fk_operational_competence' => '20', + 'symbol' => 'B.1.2', + 'taxonomy' => '3', + 'name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', + 'archive' => NULL, + ), + array ( + 'id' => '93', + 'fk_operational_competence' => '20', + 'symbol' => 'B.1.3', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', + 'archive' => NULL, + ), + array ( + 'id' => '94', + 'fk_operational_competence' => '21', + 'symbol' => 'B.2.1', + 'taxonomy' => '4', + 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', + 'archive' => NULL, + ), + array ( + 'id' => '95', + 'fk_operational_competence' => '21', + 'symbol' => 'B.2.2', + 'taxonomy' => '4', + 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '96', + 'fk_operational_competence' => '21', + 'symbol' => 'B.2.3', + 'taxonomy' => '3', + 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', + 'archive' => NULL, + ), + array ( + 'id' => '97', + 'fk_operational_competence' => '21', + 'symbol' => 'B.2.4', + 'taxonomy' => '3', + 'name' => 'Visualiser et documenter les réseaux et leur topologie', + 'archive' => NULL, + ), + array ( + 'id' => '98', + 'fk_operational_competence' => '22', + 'symbol' => 'B.3.1', + 'taxonomy' => '4', + 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', + 'archive' => NULL, + ), + array ( + 'id' => '99', + 'fk_operational_competence' => '22', + 'symbol' => 'B.3.2', + 'taxonomy' => '4', + 'name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie', + 'archive' => NULL, + ), + array ( + 'id' => '100', + 'fk_operational_competence' => '22', + 'symbol' => 'B.3.3', + 'taxonomy' => '3', + 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '101', + 'fk_operational_competence' => '22', + 'symbol' => 'B.3.4', + 'taxonomy' => '3', + 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', + 'archive' => NULL, + ), + array ( + 'id' => '102', + 'fk_operational_competence' => '23', + 'symbol' => 'C.1.1', + 'taxonomy' => '3', + 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', + 'archive' => NULL, + ), + array ( + 'id' => '103', + 'fk_operational_competence' => '23', + 'symbol' => 'C.1.2', + 'taxonomy' => '3', + 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '104', + 'fk_operational_competence' => '23', + 'symbol' => 'C.1.3', + 'taxonomy' => '4', + 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '105', + 'fk_operational_competence' => '23', + 'symbol' => 'C.1.4', + 'taxonomy' => '3', + 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', + 'archive' => NULL, + ), + array ( + 'id' => '106', + 'fk_operational_competence' => '23', + 'symbol' => 'C.1.5', + 'taxonomy' => '3', + 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', + 'archive' => NULL, + ), + array ( + 'id' => '107', + 'fk_operational_competence' => '24', + 'symbol' => 'C.2.1', + 'taxonomy' => '3', + 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', + 'archive' => NULL, + ), + array ( + 'id' => '108', + 'fk_operational_competence' => '24', + 'symbol' => 'C.2.2', + 'taxonomy' => '3', + 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', + 'archive' => NULL, + ), + array ( + 'id' => '109', + 'fk_operational_competence' => '24', + 'symbol' => 'C.2.3', + 'taxonomy' => '3', + 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '110', + 'fk_operational_competence' => '24', + 'symbol' => 'C.2.4', + 'taxonomy' => '3', + 'name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', + 'archive' => NULL, + ), + array ( + 'id' => '111', + 'fk_operational_competence' => '24', + 'symbol' => 'C.2.5', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes', + 'archive' => NULL, + ), + array ( + 'id' => '112', + 'fk_operational_competence' => '25', + 'symbol' => 'C.3.1', + 'taxonomy' => '4', + 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '113', + 'fk_operational_competence' => '25', + 'symbol' => 'C.3.2', + 'taxonomy' => '4', + 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', + 'archive' => NULL, + ), + array ( + 'id' => '114', + 'fk_operational_competence' => '25', + 'symbol' => 'C.3.3', + 'taxonomy' => '3', + 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', + 'archive' => NULL, + ), + array ( + 'id' => '115', + 'fk_operational_competence' => '25', + 'symbol' => 'C.3.4', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la fonctionnalité', + 'archive' => NULL, + ), + array ( + 'id' => '116', + 'fk_operational_competence' => '26', + 'symbol' => 'C.4.1', + 'taxonomy' => '4', + 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '117', + 'fk_operational_competence' => '26', + 'symbol' => 'C.4.2', + 'taxonomy' => '4', + 'name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', + 'archive' => NULL, + ), + array ( + 'id' => '118', + 'fk_operational_competence' => '26', + 'symbol' => 'C.4.3', + 'taxonomy' => '3', + 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '119', + 'fk_operational_competence' => '26', + 'symbol' => 'C.4.4', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', + 'archive' => NULL, + ), + array ( + 'id' => '120', + 'fk_operational_competence' => '27', + 'symbol' => 'D.1.1', + 'taxonomy' => '4', + 'name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils', + 'archive' => NULL, + ), + array ( + 'id' => '121', + 'fk_operational_competence' => '27', + 'symbol' => 'D.1.2', + 'taxonomy' => '3', + 'name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)', + 'archive' => NULL, + ), + array ( + 'id' => '122', + 'fk_operational_competence' => '27', + 'symbol' => 'D.1.3', + 'taxonomy' => '3', + 'name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité', + 'archive' => NULL, + ), + array ( + 'id' => '123', + 'fk_operational_competence' => '27', + 'symbol' => 'D.1.4', + 'taxonomy' => '3', + 'name' => 'Elaborer la documentation pour les utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '124', + 'fk_operational_competence' => '28', + 'symbol' => 'D.2.1', + 'taxonomy' => '3', + 'name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème', + 'archive' => NULL, + ), + array ( + 'id' => '125', + 'fk_operational_competence' => '28', + 'symbol' => 'D.2.2', + 'taxonomy' => '3', + 'name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques', + 'archive' => NULL, + ), + array ( + 'id' => '126', + 'fk_operational_competence' => '28', + 'symbol' => 'D.2.3', + 'taxonomy' => '3', + 'name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils', + 'archive' => NULL, + ), + array ( + 'id' => '127', + 'fk_operational_competence' => '28', + 'symbol' => 'D.2.4', + 'taxonomy' => '3', + 'name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité', + 'archive' => NULL, + ), + array ( + 'id' => '128', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.1', + 'taxonomy' => '3', + 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', + 'archive' => NULL, + ), + array ( + 'id' => '129', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.2', + 'taxonomy' => '4', + 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', + 'archive' => NULL, + ), + array ( + 'id' => '130', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.3', + 'taxonomy' => '3', + 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', + 'archive' => NULL, + ), + array ( + 'id' => '131', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.4', + 'taxonomy' => '3', + 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', + 'archive' => NULL, + ), + array ( + 'id' => '132', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.5', + 'taxonomy' => '3', + 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', + 'archive' => NULL, + ), + array ( + 'id' => '133', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.6', + 'taxonomy' => '3', + 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', + 'archive' => NULL, + ), + array ( + 'id' => '134', + 'fk_operational_competence' => '29', + 'symbol' => 'E.1.7', + 'taxonomy' => '3', + 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', + 'archive' => NULL, + ), + array ( + 'id' => '135', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.1', + 'taxonomy' => '4', + 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc', + 'archive' => NULL, + ), + array ( + 'id' => '136', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.2', + 'taxonomy' => '4', + 'name' => 'Evaluation des modes de déroulement et des applications appropriées', + 'archive' => NULL, + ), + array ( + 'id' => '137', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.3', + 'taxonomy' => '4', + 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue', + 'archive' => NULL, + ), + array ( + 'id' => '138', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.4', + 'taxonomy' => '3', + 'name' => 'Utiliser des standards et processus de développement', + 'archive' => NULL, + ), + array ( + 'id' => '139', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.5', + 'taxonomy' => '3', + 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns', + 'archive' => NULL, + ), + array ( + 'id' => '140', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.6', + 'taxonomy' => '3', + 'name' => 'Respecter la convention des codes', + 'archive' => NULL, + ), + array ( + 'id' => '141', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.7', + 'taxonomy' => '3', + 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', + 'archive' => NULL, + ), + array ( + 'id' => '142', + 'fk_operational_competence' => '30', + 'symbol' => 'E.2.8', + 'taxonomy' => '3', + 'name' => 'Tester l’application et tout documenter', + 'archive' => NULL, + ), + array ( + 'id' => '143', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.1', + 'taxonomy' => '4', + 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', + 'archive' => NULL, + ), + array ( + 'id' => '144', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.2', + 'taxonomy' => '3', + 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', + 'archive' => NULL, + ), + array ( + 'id' => '145', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.3', + 'taxonomy' => '3', + 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', + 'archive' => NULL, + ), + array ( + 'id' => '146', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.4', + 'taxonomy' => '3', + 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', + 'archive' => NULL, + ), + array ( + 'id' => '147', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.5', + 'taxonomy' => '3', + 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', + 'archive' => NULL, + ), + array ( + 'id' => '148', + 'fk_operational_competence' => '31', + 'symbol' => 'E.3.6', + 'taxonomy' => '3', + 'name' => 'Tester l’application de manière exhaustive et tout documenter', + 'archive' => NULL, + ), + array ( + 'id' => '149', + 'fk_operational_competence' => '32', + 'symbol' => 'E.4.1', + 'taxonomy' => '4', + 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', + 'archive' => NULL, + ), + array ( + 'id' => '150', + 'fk_operational_competence' => '32', + 'symbol' => 'E.4.2', + 'taxonomy' => '3', + 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', + 'archive' => NULL, + ), + array ( + 'id' => '151', + 'fk_operational_competence' => '32', + 'symbol' => 'E.4.3', + 'taxonomy' => '3', + 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', + 'archive' => NULL, + ), + array ( + 'id' => '152', + 'fk_operational_competence' => '32', + 'symbol' => 'E.4.4', + 'taxonomy' => '3', + 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', + 'archive' => NULL, + ), + array ( + 'id' => '153', + 'fk_operational_competence' => '32', + 'symbol' => 'E.4.5', + 'taxonomy' => '4', + 'name' => 'Planifier et exécuter la migration de données', + 'archive' => NULL, + ), + array ( + 'id' => '154', + 'fk_operational_competence' => '33', + 'symbol' => 'E.5.1', + 'taxonomy' => '3', + 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '155', + 'fk_operational_competence' => '33', + 'symbol' => 'E.5.2', + 'taxonomy' => '3', + 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', + 'archive' => NULL, + ), + array ( + 'id' => '156', + 'fk_operational_competence' => '33', + 'symbol' => 'E.5.3', + 'taxonomy' => '3', + 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', + 'archive' => NULL, + ), + array ( + 'id' => '157', + 'fk_operational_competence' => '33', + 'symbol' => 'E.5.4', + 'taxonomy' => '4', + 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '158', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.1', + 'taxonomy' => '3', + 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', + 'archive' => NULL, + ), + array ( + 'id' => '159', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.2', + 'taxonomy' => '3', + 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', + 'archive' => NULL, + ), + array ( + 'id' => '160', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.3', + 'taxonomy' => '3', + 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', + 'archive' => NULL, + ), + array ( + 'id' => '161', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.4', + 'taxonomy' => '3', + 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', + 'archive' => NULL, + ), + array ( + 'id' => '162', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.5', + 'taxonomy' => '3', + 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', + 'archive' => NULL, + ), + array ( + 'id' => '163', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.6', + 'taxonomy' => '3', + 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', + 'archive' => NULL, + ), + array ( + 'id' => '164', + 'fk_operational_competence' => '34', + 'symbol' => 'F.1.7', + 'taxonomy' => '3', + 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', + 'archive' => NULL, + ), + array ( + 'id' => '165', + 'fk_operational_competence' => '35', + 'symbol' => 'F.2.1', + 'taxonomy' => '4', + 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', + 'archive' => NULL, + ), + array ( + 'id' => '166', + 'fk_operational_competence' => '35', + 'symbol' => 'F.2.2', + 'taxonomy' => '3', + 'name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', + 'archive' => NULL, + ), + array ( + 'id' => '167', + 'fk_operational_competence' => '35', + 'symbol' => 'F.2.3', + 'taxonomy' => '3', + 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', + 'archive' => NULL, + ), + array ( + 'id' => '168', + 'fk_operational_competence' => '35', + 'symbol' => 'F.2.4', + 'taxonomy' => '3', + 'name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', + 'archive' => NULL, + ), + array ( + 'id' => '169', + 'fk_operational_competence' => '35', + 'symbol' => 'F.2.5', + 'taxonomy' => '3', + 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', + 'archive' => NULL, + ), + array ( + 'id' => '170', + 'fk_operational_competence' => '36', + 'symbol' => 'F.3.1', + 'taxonomy' => '3', + 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', + 'archive' => NULL, + ), + array ( + 'id' => '171', + 'fk_operational_competence' => '36', + 'symbol' => 'F.3.2', + 'taxonomy' => '3', + 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', + 'archive' => NULL, + ), + array ( + 'id' => '177', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.1', + 'taxonomy' => '4', + 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', + 'archive' => NULL, + ), + array ( + 'id' => '178', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.2', + 'taxonomy' => '4', + 'name' => 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '179', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.3', + 'taxonomy' => '3', + 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', + 'archive' => NULL, + ), + array ( + 'id' => '180', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.4', + 'taxonomy' => '3', + 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', + 'archive' => NULL, + ), + array ( + 'id' => '181', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.5', + 'taxonomy' => '3', + 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', + 'archive' => NULL, + ), + array ( + 'id' => '182', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.6', + 'taxonomy' => '3', + 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '183', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.7', + 'taxonomy' => '3', + 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', + 'archive' => NULL, + ), + array ( + 'id' => '184', + 'fk_operational_competence' => '42', + 'symbol' => 'A.1.8', + 'taxonomy' => '4', + 'name' => 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)', + 'archive' => NULL, + ), + array ( + 'id' => '185', + 'fk_operational_competence' => '43', + 'symbol' => 'A.2.1', + 'taxonomy' => '4', + 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre +(organisation, méthodes de travail, optimisation de l’énergie)', + 'archive' => NULL, + ), + array ( + 'id' => '186', + 'fk_operational_competence' => '43', + 'symbol' => 'A.2.2', + 'taxonomy' => '4', + 'name' => 'Choisir le matériel et logiciels appropriés en tenant compte +des directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '187', + 'fk_operational_competence' => '43', + 'symbol' => 'A.2.3', + 'taxonomy' => '4', + 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', + 'archive' => NULL, + ), + array ( + 'id' => '188', + 'fk_operational_competence' => '43', + 'symbol' => 'A.2.4', + 'taxonomy' => '3', + 'name' => 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', + 'archive' => NULL, + ), + array ( + 'id' => '189', + 'fk_operational_competence' => '43', + 'symbol' => 'A.2.5', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', + 'archive' => NULL, + ), + array ( + 'id' => '190', + 'fk_operational_competence' => '44', + 'symbol' => 'A.3.1', + 'taxonomy' => '4', + 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', + 'archive' => NULL, + ), + array ( + 'id' => '191', + 'fk_operational_competence' => '44', + 'symbol' => 'A.3.2', + 'taxonomy' => '4', + 'name' => 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '192', + 'fk_operational_competence' => '44', + 'symbol' => 'A.3.3', + 'taxonomy' => '3', + 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau', + 'archive' => NULL, + ), + array ( + 'id' => '193', + 'fk_operational_competence' => '44', + 'symbol' => 'A.3.4', + 'taxonomy' => '3', + 'name' => ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats', + 'archive' => NULL, + ), + array ( + 'id' => '194', + 'fk_operational_competence' => '45', + 'symbol' => 'B.1.1', + 'taxonomy' => '4', + 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', + 'archive' => NULL, + ), + array ( + 'id' => '195', + 'fk_operational_competence' => '45', + 'symbol' => 'B.1.2', + 'taxonomy' => '4', + 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', + 'archive' => NULL, + ), + array ( + 'id' => '196', + 'fk_operational_competence' => '45', + 'symbol' => 'B.1.3', + 'taxonomy' => '3', + 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', + 'archive' => NULL, + ), + array ( + 'id' => '197', + 'fk_operational_competence' => '45', + 'symbol' => 'B.1.4', + 'taxonomy' => '3', + 'name' => 'Visualiser et documenter les réseaux et leur topologie', + 'archive' => NULL, + ), + array ( + 'id' => '198', + 'fk_operational_competence' => '46', + 'symbol' => 'B.2.1', + 'taxonomy' => '3', + 'name' => 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement', + 'archive' => NULL, + ), + array ( + 'id' => '199', + 'fk_operational_competence' => '46', + 'symbol' => 'B.2.2', + 'taxonomy' => '3', + 'name' => 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre', + 'archive' => NULL, + ), + array ( + 'id' => '200', + 'fk_operational_competence' => '46', + 'symbol' => 'B.2.3', + 'taxonomy' => '3', + 'name' => 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités', + 'archive' => NULL, + ), + array ( + 'id' => '201', + 'fk_operational_competence' => '46', + 'symbol' => 'B.2.4', + 'taxonomy' => '3', + 'name' => 'Documenter la solution et élaborer le mode d’emploi utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '202', + 'fk_operational_competence' => '47', + 'symbol' => 'B.3.1', + 'taxonomy' => '5', + 'name' => 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)', + 'archive' => NULL, + ), + array ( + 'id' => '203', + 'fk_operational_competence' => '47', + 'symbol' => 'B.3.2', + 'taxonomy' => '5', + 'name' => 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration', + 'archive' => NULL, + ), + array ( + 'id' => '204', + 'fk_operational_competence' => '47', + 'symbol' => 'B.3.3', + 'taxonomy' => '3', + 'name' => 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité', + 'archive' => NULL, + ), + array ( + 'id' => '205', + 'fk_operational_competence' => '48', + 'symbol' => 'B.4.1', + 'taxonomy' => '5', + 'name' => 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement', + 'archive' => NULL, + ), + array ( + 'id' => '206', + 'fk_operational_competence' => '48', + 'symbol' => 'B.4.2', + 'taxonomy' => '5', + 'name' => 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup', + 'archive' => NULL, + ), + array ( + 'id' => '207', + 'fk_operational_competence' => '48', + 'symbol' => 'B.4.3', + 'taxonomy' => '3', + 'name' => 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats', + 'archive' => NULL, + ), + array ( + 'id' => '208', + 'fk_operational_competence' => '49', + 'symbol' => 'C.1.1', + 'taxonomy' => '4', + 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '209', + 'fk_operational_competence' => '49', + 'symbol' => 'C.1.2', + 'taxonomy' => '4', + 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', + 'archive' => NULL, + ), + array ( + 'id' => '210', + 'fk_operational_competence' => '49', + 'symbol' => 'C.1.3', + 'taxonomy' => '3', + 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', + 'archive' => NULL, + ), + array ( + 'id' => '211', + 'fk_operational_competence' => '49', + 'symbol' => 'C.1.4', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la fonctionnalité', + 'archive' => NULL, + ), + array ( + 'id' => '212', + 'fk_operational_competence' => '50', + 'symbol' => 'C.2.1', + 'taxonomy' => '5', + 'name' => 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', + 'archive' => NULL, + ), + array ( + 'id' => '213', + 'fk_operational_competence' => '50', + 'symbol' => 'C.2.2', + 'taxonomy' => '4', + 'name' => 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès', + 'archive' => NULL, + ), + array ( + 'id' => '214', + 'fk_operational_competence' => '50', + 'symbol' => 'C.2.3', + 'taxonomy' => '3', + 'name' => 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus', + 'archive' => NULL, + ), + array ( + 'id' => '215', + 'fk_operational_competence' => '50', + 'symbol' => 'C.2.4', + 'taxonomy' => '3', + 'name' => 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation', + 'archive' => NULL, + ), + array ( + 'id' => '216', + 'fk_operational_competence' => '51', + 'symbol' => 'C.3.1', + 'taxonomy' => '4', + 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '217', + 'fk_operational_competence' => '51', + 'symbol' => 'C.3.2', + 'taxonomy' => '4', + 'name' => 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', + 'archive' => NULL, + ), + array ( + 'id' => '218', + 'fk_operational_competence' => '51', + 'symbol' => 'C.3.3', + 'taxonomy' => '3', + 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '219', + 'fk_operational_competence' => '51', + 'symbol' => 'C.3.4', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', + 'archive' => NULL, + ), + array ( + 'id' => '220', + 'fk_operational_competence' => '52', + 'symbol' => 'C.4.1', + 'taxonomy' => '5', + 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', + 'archive' => NULL, + ), + array ( + 'id' => '221', + 'fk_operational_competence' => '52', + 'symbol' => 'C.4.2', + 'taxonomy' => '4', + 'name' => 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie', + 'archive' => NULL, + ), + array ( + 'id' => '222', + 'fk_operational_competence' => '52', + 'symbol' => 'C.4.3', + 'taxonomy' => '3', + 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '223', + 'fk_operational_competence' => '52', + 'symbol' => 'C.4.4', + 'taxonomy' => '3', + 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', + 'archive' => NULL, + ), + array ( + 'id' => '224', + 'fk_operational_competence' => '53', + 'symbol' => 'C.5.1', + 'taxonomy' => '4', + 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', + 'archive' => NULL, + ), + array ( + 'id' => '225', + 'fk_operational_competence' => '53', + 'symbol' => 'C.5.2', + 'taxonomy' => '4', + 'name' => 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès', + 'archive' => NULL, + ), + array ( + 'id' => '226', + 'fk_operational_competence' => '53', + 'symbol' => 'C.5.3', + 'taxonomy' => '3', + 'name' => 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité', + 'archive' => NULL, + ), + array ( + 'id' => '227', + 'fk_operational_competence' => '53', + 'symbol' => 'C.5.4', + 'taxonomy' => '3', + 'name' => 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests', + 'archive' => NULL, + ), + array ( + 'id' => '228', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.1', + 'taxonomy' => '3', + 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', + 'archive' => NULL, + ), + array ( + 'id' => '229', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.2', + 'taxonomy' => '3', + 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '230', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.3', + 'taxonomy' => '5', + 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '231', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.4', + 'taxonomy' => '3', + 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', + 'archive' => NULL, + ), + array ( + 'id' => '232', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.5', + 'taxonomy' => '3', + 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', + 'archive' => NULL, + ), + array ( + 'id' => '233', + 'fk_operational_competence' => '54', + 'symbol' => 'D.1.6', + 'taxonomy' => '3', + 'name' => 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats', + 'archive' => NULL, + ), + array ( + 'id' => '234', + 'fk_operational_competence' => '55', + 'symbol' => 'D.2.1', + 'taxonomy' => '3', + 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', + 'archive' => NULL, + ), + array ( + 'id' => '235', + 'fk_operational_competence' => '55', + 'symbol' => 'D.2.2', + 'taxonomy' => '3', + 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', + 'archive' => NULL, + ), + array ( + 'id' => '236', + 'fk_operational_competence' => '55', + 'symbol' => 'D.2.3', + 'taxonomy' => '3', + 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '237', + 'fk_operational_competence' => '55', + 'symbol' => 'D.2.4', + 'taxonomy' => '3', + 'name' => 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', + 'archive' => NULL, + ), + array ( + 'id' => '238', + 'fk_operational_competence' => '55', + 'symbol' => 'D.2.5', + 'taxonomy' => '3', + 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ', + 'archive' => NULL, + ), + array ( + 'id' => '239', + 'fk_operational_competence' => '56', + 'symbol' => 'D.3.1', + 'taxonomy' => '3', + 'name' => 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité', + 'archive' => NULL, + ), + array ( + 'id' => '240', + 'fk_operational_competence' => '56', + 'symbol' => 'D.3.2', + 'taxonomy' => '3', + 'name' => 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils', + 'archive' => NULL, + ), + array ( + 'id' => '241', + 'fk_operational_competence' => '56', + 'symbol' => 'D.3.3', + 'taxonomy' => '3', + 'name' => 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes', + 'archive' => NULL, + ), + array ( + 'id' => '242', + 'fk_operational_competence' => '56', + 'symbol' => 'D.3.4', + 'taxonomy' => '3', + 'name' => 'Informer et instruire les utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '243', + 'fk_operational_competence' => '57', + 'symbol' => 'D.4.1', + 'taxonomy' => '3', + 'name' => 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte', + 'archive' => NULL, + ), + array ( + 'id' => '244', + 'fk_operational_competence' => '57', + 'symbol' => 'D.4.2', + 'taxonomy' => '4', + 'name' => 'Développer une solution et la présenter au supérieur ou à l’utilisateur', + 'archive' => NULL, + ), + array ( + 'id' => '245', + 'fk_operational_competence' => '57', + 'symbol' => 'D.4.3', + 'taxonomy' => '3', + 'name' => 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)', + 'archive' => NULL, + ), + array ( + 'id' => '246', + 'fk_operational_competence' => '57', + 'symbol' => 'D.4.4', + 'taxonomy' => '3', + 'name' => 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités', + 'archive' => NULL, + ), + array ( + 'id' => '247', + 'fk_operational_competence' => '58', + 'symbol' => 'D.5.1', + 'taxonomy' => '4', + 'name' => 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres', + 'archive' => NULL, + ), + array ( + 'id' => '248', + 'fk_operational_competence' => '58', + 'symbol' => 'D.5.2', + 'taxonomy' => '4', + 'name' => 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution', + 'archive' => NULL, + ), + array ( + 'id' => '249', + 'fk_operational_competence' => '58', + 'symbol' => 'D.5.3', + 'taxonomy' => '3', + 'name' => 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités', + 'archive' => NULL, + ), + array ( + 'id' => '250', + 'fk_operational_competence' => '58', + 'symbol' => 'D.5.4', + 'taxonomy' => '3', + 'name' => 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci', + 'archive' => NULL, + ), + array ( + 'id' => '251', + 'fk_operational_competence' => '58', + 'symbol' => 'D.5.5', + 'taxonomy' => '3', + 'name' => 'Informer les utilisateurs selon les besoins', + 'archive' => NULL, + ), + array ( + 'id' => '252', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.1', + 'taxonomy' => '3', + 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', + 'archive' => NULL, + ), + array ( + 'id' => '253', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.2', + 'taxonomy' => '3', + 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', + 'archive' => NULL, + ), + array ( + 'id' => '254', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.3', + 'taxonomy' => '3', + 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', + 'archive' => NULL, + ), + array ( + 'id' => '255', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.4', + 'taxonomy' => '3', + 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', + 'archive' => NULL, + ), + array ( + 'id' => '256', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.5', + 'taxonomy' => '3', + 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', + 'archive' => NULL, + ), + array ( + 'id' => '257', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.6', + 'taxonomy' => '3', + 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', + 'archive' => NULL, + ), + array ( + 'id' => '258', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.7', + 'taxonomy' => '3', + 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', + 'archive' => NULL, + ), + array ( + 'id' => '259', + 'fk_operational_competence' => '59', + 'symbol' => 'E.1.8', + 'taxonomy' => '3', + 'name' => 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable', + 'archive' => NULL, + ), + array ( + 'id' => '260', + 'fk_operational_competence' => '60', + 'symbol' => 'E.2.1', + 'taxonomy' => '4', + 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', + 'archive' => NULL, + ), + array ( + 'id' => '261', + 'fk_operational_competence' => '60', + 'symbol' => 'E.2.2', + 'taxonomy' => '3', + 'name' => 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', + 'archive' => NULL, + ), + array ( + 'id' => '262', + 'fk_operational_competence' => '60', + 'symbol' => 'E.2.3', + 'taxonomy' => '3', + 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', + 'archive' => NULL, + ), + array ( + 'id' => '263', + 'fk_operational_competence' => '60', + 'symbol' => 'E.2.4', + 'taxonomy' => '3', + 'name' => 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', + 'archive' => NULL, + ), + array ( + 'id' => '264', + 'fk_operational_competence' => '60', + 'symbol' => 'E.2.5', + 'taxonomy' => '3', + 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', + 'archive' => NULL, + ), + array ( + 'id' => '265', + 'fk_operational_competence' => '61', + 'symbol' => 'E.3.1', + 'taxonomy' => '3', + 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', + 'archive' => NULL, + ), + array ( + 'id' => '266', + 'fk_operational_competence' => '61', + 'symbol' => 'E.3.2', + 'taxonomy' => '3', + 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', + 'archive' => NULL, + ), + array ( + 'id' => '267', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.1', + 'taxonomy' => '2', + 'name' => 'Expliquent les tâches et fonctions des systèmes d’exploitation courants', + 'archive' => NULL, + ), + array ( + 'id' => '268', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.2', + 'taxonomy' => '4', + 'name' => 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte', + 'archive' => NULL, + ), + array ( + 'id' => '269', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.3', + 'taxonomy' => '3', + 'name' => 'Installent et configurent des appareils périphériques et leurs extensions', + 'archive' => NULL, + ), + array ( + 'id' => '270', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.4', + 'taxonomy' => '3', + 'name' => 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement', + 'archive' => NULL, + ), + array ( + 'id' => '271', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.5', + 'taxonomy' => '3', + 'name' => 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits', + 'archive' => NULL, + ), + array ( + 'id' => '272', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.6', + 'taxonomy' => '1', + 'name' => 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs', + 'archive' => NULL, + ), + array ( + 'id' => '273', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.7', + 'taxonomy' => '3', + 'name' => 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants', + 'archive' => NULL, + ), + array ( + 'id' => '274', + 'fk_operational_competence' => '62', + 'symbol' => 'A.1.8', + 'taxonomy' => '3', + 'name' => 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique', + 'archive' => NULL, + ), + array ( + 'id' => '275', + 'fk_operational_competence' => '63', + 'symbol' => 'A.2.1', + 'taxonomy' => '3', + 'name' => 'Installent et configurent des applications standards et les administrent', + 'archive' => NULL, + ), + array ( + 'id' => '276', + 'fk_operational_competence' => '63', + 'symbol' => 'A.2.2', + 'taxonomy' => '2', + 'name' => 'Actualisent les logiciels existants avec une version actuelle', + 'archive' => NULL, + ), + array ( + 'id' => '277', + 'fk_operational_competence' => '63', + 'symbol' => 'A.2.3', + 'taxonomy' => '3', + 'name' => 'Décrivent les diverses variantes de licences', + 'archive' => NULL, + ), + array ( + 'id' => '278', + 'fk_operational_competence' => '63', + 'symbol' => 'A.2.4', + 'taxonomy' => '3', + 'name' => 'Appliquent les processus de la gestion des licences', + 'archive' => NULL, + ), + array ( + 'id' => '279', + 'fk_operational_competence' => '64', + 'symbol' => 'A.3.1', + 'taxonomy' => '4', + 'name' => 'Exécutent des tests de fonctions selon directives et évaluent les résultats', + 'archive' => NULL, + ), + array ( + 'id' => '280', + 'fk_operational_competence' => '64', + 'symbol' => 'A.3.2', + 'taxonomy' => '3', + 'name' => 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres', + 'archive' => NULL, + ), + array ( + 'id' => '281', + 'fk_operational_competence' => '64', + 'symbol' => 'A.3.3', + 'taxonomy' => '4', + 'name' => 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude', + 'archive' => NULL, + ), + array ( + 'id' => '282', + 'fk_operational_competence' => '65', + 'symbol' => 'A.4.1', + 'taxonomy' => '3', + 'name' => 'Appliquent des scripts et contrôlent leur exécution', + 'archive' => NULL, + ), + array ( + 'id' => '283', + 'fk_operational_competence' => '65', + 'symbol' => 'A.4.2', + 'taxonomy' => '4', + 'name' => 'Entreprennent des adaptations sur la fonctionnalité du script', + 'archive' => NULL, + ), + array ( + 'id' => '284', + 'fk_operational_competence' => '65', + 'symbol' => 'A.4.3', + 'taxonomy' => '3', + 'name' => 'Programment des scripts simples selon directives', + 'archive' => NULL, + ), + array ( + 'id' => '285', + 'fk_operational_competence' => '66', + 'symbol' => 'B.1.1', + 'taxonomy' => '2', + 'name' => 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)', + 'archive' => NULL, + ), + array ( + 'id' => '286', + 'fk_operational_competence' => '66', + 'symbol' => 'B.1.2', + 'taxonomy' => '4', + 'name' => 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant', + 'archive' => NULL, + ), + array ( + 'id' => '287', + 'fk_operational_competence' => '66', + 'symbol' => 'B.1.3', + 'taxonomy' => '4', + 'name' => 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte', + 'archive' => NULL, + ), + array ( + 'id' => '288', + 'fk_operational_competence' => '66', + 'symbol' => 'B.1.4', + 'taxonomy' => '2', + 'name' => 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud', + 'archive' => NULL, + ), + array ( + 'id' => '289', + 'fk_operational_competence' => '67', + 'symbol' => 'B.2.1', + 'taxonomy' => '3', + 'name' => 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur', + 'archive' => NULL, + ), + array ( + 'id' => '290', + 'fk_operational_competence' => '67', + 'symbol' => 'B.2.2', + 'taxonomy' => '2', + 'name' => 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions', + 'archive' => NULL, + ), + array ( + 'id' => '291', + 'fk_operational_competence' => '67', + 'symbol' => 'B.2.3', + 'taxonomy' => '4', + 'name' => 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte', + 'archive' => NULL, + ), + array ( + 'id' => '292', + 'fk_operational_competence' => '67', + 'symbol' => 'B.2.4', + 'taxonomy' => '3', + 'name' => 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)', + 'archive' => NULL, + ), + array ( + 'id' => '293', + 'fk_operational_competence' => '68', + 'symbol' => 'B.3.1', + 'taxonomy' => '2', + 'name' => 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT', + 'archive' => NULL, + ), + array ( + 'id' => '294', + 'fk_operational_competence' => '68', + 'symbol' => 'B.3.2', + 'taxonomy' => '3', + 'name' => 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel', + 'archive' => NULL, + ), + array ( + 'id' => '295', + 'fk_operational_competence' => '68', + 'symbol' => 'B.3.3', + 'taxonomy' => '3', + 'name' => 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '296', + 'fk_operational_competence' => '68', + 'symbol' => 'B.3.4', + 'taxonomy' => '3', + 'name' => 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation', + 'archive' => NULL, + ), + array ( + 'id' => '297', + 'fk_operational_competence' => '68', + 'symbol' => 'B.3.5', + 'taxonomy' => '3', + 'name' => 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs', + 'archive' => NULL, + ), + array ( + 'id' => '298', + 'fk_operational_competence' => '69', + 'symbol' => 'C.1.1', + 'taxonomy' => '3', + 'name' => 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique', + 'archive' => NULL, + ), + array ( + 'id' => '299', + 'fk_operational_competence' => '69', + 'symbol' => 'C.1.2', + 'taxonomy' => '2', + 'name' => 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution', + 'archive' => NULL, + ), + array ( + 'id' => '300', + 'fk_operational_competence' => '69', + 'symbol' => 'C.1.3', + 'taxonomy' => '3', + 'name' => 'Appliquent les logiciels appropriés pour la réalisation de présentations', + 'archive' => NULL, + ), + array ( + 'id' => '301', + 'fk_operational_competence' => '69', + 'symbol' => 'C.1.4', + 'taxonomy' => '3', + 'name' => 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations', + 'archive' => NULL, + ), + array ( + 'id' => '302', + 'fk_operational_competence' => '69', + 'symbol' => 'C.1.5', + 'taxonomy' => '3', + 'name' => 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '303', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.1', + 'taxonomy' => '3', + 'name' => 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits', + 'archive' => NULL, + ), + array ( + 'id' => '304', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.2', + 'taxonomy' => '3', + 'name' => 'Appliquent des directives et modèles de documentation de l‘entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '305', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.3', + 'taxonomy' => '3', + 'name' => 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires', + 'archive' => NULL, + ), + array ( + 'id' => '306', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.4', + 'taxonomy' => '4', + 'name' => 'Trient l’indispensable du superflu et fixent les bonnes priorités', + 'archive' => NULL, + ), + array ( + 'id' => '307', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.5', + 'taxonomy' => '3', + 'name' => 'Élaborent des modes d’emploi compréhensibles et clairement structurés', + 'archive' => NULL, + ), + array ( + 'id' => '308', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.6', + 'taxonomy' => '3', + 'name' => 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace', + 'archive' => NULL, + ), + array ( + 'id' => '309', + 'fk_operational_competence' => '70', + 'symbol' => 'C.2.7', + 'taxonomy' => '3', + 'name' => 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation', + 'archive' => NULL, + ), + array ( + 'id' => '310', + 'fk_operational_competence' => '71', + 'symbol' => 'C.3.1', + 'taxonomy' => '3', + 'name' => 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition', + 'archive' => NULL, + ), + array ( + 'id' => '311', + 'fk_operational_competence' => '71', + 'symbol' => 'C.3.2', + 'taxonomy' => '3', + 'name' => 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée', + 'archive' => NULL, + ), + array ( + 'id' => '312', + 'fk_operational_competence' => '71', + 'symbol' => 'C.3.3', + 'taxonomy' => '4', + 'name' => 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent', + 'archive' => NULL, + ), + array ( + 'id' => '313', + 'fk_operational_competence' => '71', + 'symbol' => 'C.3.4', + 'taxonomy' => '3', + 'name' => 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient', + 'archive' => NULL, + ), + array ( + 'id' => '314', + 'fk_operational_competence' => '71', + 'symbol' => 'C.3.5', + 'taxonomy' => '3', + 'name' => 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)', + 'archive' => NULL, + ), + array ( + 'id' => '315', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.1', + 'taxonomy' => '2', + 'name' => 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème', + 'archive' => NULL, + ), + array ( + 'id' => '316', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.2', + 'taxonomy' => '4', + 'name' => 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte', + 'archive' => NULL, + ), + array ( + 'id' => '317', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.3', + 'taxonomy' => '3', + 'name' => 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement', + 'archive' => NULL, + ), + array ( + 'id' => '318', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.4', + 'taxonomy' => '3', + 'name' => 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions', + 'archive' => NULL, + ), + array ( + 'id' => '319', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.5', + 'taxonomy' => '3', + 'name' => 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux', + 'archive' => NULL, + ), + array ( + 'id' => '320', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.6', + 'taxonomy' => '2', + 'name' => 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes', + 'archive' => NULL, + ), + array ( + 'id' => '321', + 'fk_operational_competence' => '72', + 'symbol' => 'D.1.7', + 'taxonomy' => '3', + 'name' => 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients', + 'archive' => NULL, + ), + array ( + 'id' => '322', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.1', + 'taxonomy' => '3', + 'name' => 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée', + 'archive' => NULL, + ), + array ( + 'id' => '323', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.2', + 'taxonomy' => '3', + 'name' => 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe', + 'archive' => NULL, + ), + array ( + 'id' => '324', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.3', + 'taxonomy' => '3', + 'name' => 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe', + 'archive' => NULL, + ), + array ( + 'id' => '325', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.4', + 'taxonomy' => '2', + 'name' => 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe', + 'archive' => NULL, + ), + array ( + 'id' => '326', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.5', + 'taxonomy' => '2', + 'name' => 'Décrivent les causes et la dynamique des conflits', + 'archive' => NULL, + ), + array ( + 'id' => '327', + 'fk_operational_competence' => '73', + 'symbol' => 'D.2.6', + 'taxonomy' => '4', + 'name' => 'Décèlent à temps les situations de conflits et prend les mesures en conséquence', + 'archive' => NULL, + ), + array ( + 'id' => '328', + 'fk_operational_competence' => '74', + 'symbol' => 'D.3.1', + 'taxonomy' => '3', + 'name' => 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive', + 'archive' => NULL, + ), + array ( + 'id' => '329', + 'fk_operational_competence' => '74', + 'symbol' => 'D.3.2', + 'taxonomy' => '2', + 'name' => 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos', + 'archive' => NULL, + ), + array ( + 'id' => '330', + 'fk_operational_competence' => '74', + 'symbol' => 'D.3.3', + 'taxonomy' => '3', + 'name' => 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail', + 'archive' => NULL, + ), + array ( + 'id' => '331', + 'fk_operational_competence' => '74', + 'symbol' => 'D.3.4', + 'taxonomy' => '3', + 'name' => 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes', + 'archive' => NULL, + ), + array ( + 'id' => '332', + 'fk_operational_competence' => '74', + 'symbol' => 'D.3.5', + 'taxonomy' => '3', + 'name' => 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers', + 'archive' => NULL, + ), + array ( + 'id' => '333', + 'fk_operational_competence' => '2', + 'symbol' => 'aa', + 'taxonomy' => '6', + 'name' => 'as', + 'archive' => NULL, + ), + array ( + 'id' => '334', + 'fk_operational_competence' => '2', + 'symbol' => 'aa', + 'taxonomy' => '6', + 'name' => 'a23', + 'archive' => NULL, + ), + array ( + 'id' => '335', + 'fk_operational_competence' => '2', + 'symbol' => 'aa', + 'taxonomy' => '6', + 'name' => 'a12', + 'archive' => NULL, + ), + array ( + 'id' => '336', + 'fk_operational_competence' => '2', + 'symbol' => 'A1', + 'taxonomy' => '6', + 'name' => 'a123', + 'archive' => NULL, + ), + ]; + foreach ($objectives as $objective){ + $this->db->table('objective')->insert($objective); + } + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php new file mode 100644 index 00000000..fa2a8414 --- /dev/null +++ b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php @@ -0,0 +1,742 @@ + '1', + 'fk_competence_domain' => '1', + 'name' => 'Analyser, structurer et documenter les exigences ainsi que les besoins', + 'symbol' => 'A++', + 'methodologic' => 'Travail structuré, documentation adéquate', + 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires', + 'personal' => 'Fiabilité, autoréflexion, interrogation constructive du problème', + 'archive' => '2021-06-02 08:44:41', + ), + array ( + 'id' => '2', + 'fk_competence_domain' => '1', + 'name' => 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises', + 'symbol' => 'A2', + 'methodologic' => 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision', + 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau', + 'personal' => 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions', + 'archive' => NULL, + ), + array ( + 'id' => '3', + 'fk_competence_domain' => '1', + 'name' => 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies', + 'symbol' => 'A3', + 'methodologic' => 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration', + 'social' => '', + 'personal' => 'Précision dans le travail', + 'archive' => NULL, + ), + array ( + 'id' => '4', + 'fk_competence_domain' => '2', + 'name' => 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', + 'symbol' => 'B1', + 'methodologic' => '', + 'social' => 'Capacité de critique mutuelle', + 'personal' => 'Développer préventivement, estimer les conséquences', + 'archive' => NULL, + ), + array ( + 'id' => '5', + 'fk_competence_domain' => '2', + 'name' => 'Mettre en œuvre des directives d’architecture dans un projet concret', + 'symbol' => 'B2', + 'methodologic' => '', + 'social' => '', + 'personal' => 'Capacités d’abstraction', + 'archive' => NULL, + ), + array ( + 'id' => '6', + 'fk_competence_domain' => '2', + 'name' => 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement', + 'symbol' => 'B3', + 'methodologic' => 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau', + 'social' => 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant', + 'personal' => 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide', + 'archive' => NULL, + ), + array ( + 'id' => '7', + 'fk_competence_domain' => '2', + 'name' => 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet', + 'symbol' => 'B4', + 'methodologic' => 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices', + 'social' => 'Travail en groupe, empathie', + 'personal' => 'Capacités innovatrices, créativité', + 'archive' => NULL, + ), + array ( + 'id' => '8', + 'fk_competence_domain' => '2', + 'name' => 'Garantir la qualité des applications', + 'symbol' => 'B5', + 'methodologic' => 'Travail reproductible, description propres des versions de l‘application, gestion de projets', + 'social' => 'Capacité de critiques et de conflits, empathie', + 'personal' => 'Vérification autocritique des résultats, méticulosité', + 'archive' => NULL, + ), + array ( + 'id' => '9', + 'fk_competence_domain' => '2', + 'name' => 'Préparer et mettre en œuvre l’introduction des applications', + 'symbol' => 'B6', + 'methodologic' => 'Gestion de projets', + 'social' => 'Capacités de communication, travail en réseau, déroulement sensible', + 'personal' => 'Conscience de la responsabilité', + 'archive' => NULL, + ), + array ( + 'id' => '10', + 'fk_competence_domain' => '3', + 'name' => 'Identifier et analyser des données, puis développer avec des modèles de données appropriés', + 'symbol' => 'C1', + 'methodologic' => 'Déroulement structuré, comportement avec des outils de présentation, développement itératif', + 'social' => 'Communication avec des clients, travail en groupe', + 'personal' => 'Précision, abstraction, remise en question critique', + 'archive' => NULL, + ), + array ( + 'id' => '11', + 'fk_competence_domain' => '3', + 'name' => 'Mettre en œuvre un modèle de données dans une base de données', + 'symbol' => 'C2', + 'methodologic' => '', + 'social' => '', + 'personal' => 'Capacité d’abstraction', + 'archive' => NULL, + ), + array ( + 'id' => '12', + 'fk_competence_domain' => '3', + 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', + 'symbol' => 'C3', + 'methodologic' => '', + 'social' => '', + 'personal' => '', + 'archive' => NULL, + ), + array ( + 'id' => '13', + 'fk_competence_domain' => '4', + 'name' => 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau', + 'symbol' => 'D1', + 'methodologic' => 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement', + 'social' => 'Orientation client, communication écrite et orale', + 'personal' => 'Autoréflexion critique', + 'archive' => NULL, + ), + array ( + 'id' => '14', + 'fk_competence_domain' => '5', + 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', + 'symbol' => 'E1', + 'methodologic' => 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux', + 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', + 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '15', + 'fk_competence_domain' => '5', + 'name' => 'Collaborer à des projets et travailler selon des méthodes de projets', + 'symbol' => 'E2', + 'methodologic' => 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes', + 'social' => 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs', + 'personal' => 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion', + 'archive' => NULL, + ), + array ( + 'id' => '16', + 'fk_competence_domain' => '5', + 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', + 'symbol' => 'E3', + 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', + 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise +', + 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', + 'archive' => NULL, + ), + array ( + 'id' => '17', + 'fk_competence_domain' => '6', + 'name' => 'Evaluer et mettre en service une place de travail utilisateur', + 'symbol' => 'A1', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', + 'social' => 'Orientation client, communication écrite et orale', + 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', + 'archive' => NULL, + ), + array ( + 'id' => '18', + 'fk_competence_domain' => '6', + 'name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs', + 'symbol' => 'A2', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', + 'social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client', + 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', + 'archive' => NULL, + ), + array ( + 'id' => '19', + 'fk_competence_domain' => '6', + 'name' => 'Connecter et configurer des appareils périphériques', + 'symbol' => 'A3', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', + 'social' => 'Orientation client, communication écrite et orale, langage adapté au client', + 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', + 'archive' => NULL, + ), + array ( + 'id' => '20', + 'fk_competence_domain' => '7', + 'name' => 'Mettre en service des systèmes serveurs', + 'symbol' => 'B1', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', + 'social' => 'Orientation client, communication écrite et orale', + 'personal' => 'Autoréflexion critique', + 'archive' => NULL, + ), + array ( + 'id' => '21', + 'fk_competence_domain' => '7', + 'name' => 'Installer des réseaux et leurs topologies', + 'symbol' => 'B2', + 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision', + 'social' => 'Faire des entretiens professionnels en anglais', + 'personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction', + 'archive' => NULL, + ), + array ( + 'id' => '22', + 'fk_competence_domain' => '7', + 'name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage', + 'symbol' => 'B3', + 'methodologic' => 'Actions préventives', + 'social' => 'Conseil', + 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress', + 'archive' => NULL, + ), + array ( + 'id' => '23', + 'fk_competence_domain' => '8', + 'name' => 'Assurer la maintenance de réseaux et les développer', + 'symbol' => 'C1', + 'methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', + 'social' => '', + 'personal' => 'Précision, fiable, actions attentives', + 'archive' => NULL, + ), + array ( + 'id' => '24', + 'fk_competence_domain' => '8', + 'name' => 'Assurer la maintenance et administrer des serveurs', + 'symbol' => 'C2', + 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)', + 'social' => 'Travail en groupe, entretien professionnel en anglais', + 'personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline', + 'archive' => NULL, + ), + array ( + 'id' => '25', + 'fk_competence_domain' => '8', + 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', + 'symbol' => 'C3', + 'methodologic' => 'Techniques d’interrogation', + 'social' => 'Empathie', + 'personal' => 'Comprendre et interpréter des documents anglais', + 'archive' => NULL, + ), + array ( + 'id' => '26', + 'fk_competence_domain' => '8', + 'name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)', + 'symbol' => 'C4', + 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique', + 'social' => 'Travailler en groupe', + 'personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion', + 'archive' => NULL, + ), + array ( + 'id' => '27', + 'fk_competence_domain' => '9', + 'name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques', + 'symbol' => 'D1', + 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide', + 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', + 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', + 'archive' => NULL, + ), + array ( + 'id' => '28', + 'fk_competence_domain' => '9', + 'name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place', + 'symbol' => 'D2', + 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist', + 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', + 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', + 'archive' => NULL, + ), + array ( + 'id' => '29', + 'fk_competence_domain' => '10', + 'name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', + 'symbol' => 'E1', + 'methodologic' => '', + 'social' => 'Capacité de critique mutuelle', + 'personal' => 'Développer préventivement, estimer les conséquences', + 'archive' => NULL, + ), + array ( + 'id' => '30', + 'fk_competence_domain' => '10', + 'name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement', + 'symbol' => 'E2', + 'methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau', + 'social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant', + 'personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide', + 'archive' => NULL, + ), + array ( + 'id' => '31', + 'fk_competence_domain' => '10', + 'name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client', + 'symbol' => 'E3', + 'methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes', + 'social' => 'Travail en groupe, empathie', + 'personal' => 'Capacité d’innovation, créativité', + 'archive' => NULL, + ), + array ( + 'id' => '32', + 'fk_competence_domain' => '10', + 'name' => 'Mettre en œuvre des modèles de données dans une base de données', + 'symbol' => 'E4', + 'methodologic' => '', + 'social' => '', + 'personal' => 'Capacité d’abstraction', + 'archive' => NULL, + ), + array ( + 'id' => '33', + 'fk_competence_domain' => '10', + 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', + 'symbol' => 'E5', + 'methodologic' => '', + 'social' => '', + 'personal' => '', + 'archive' => NULL, + ), + array ( + 'id' => '34', + 'fk_competence_domain' => '11', + 'name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace', + 'symbol' => 'F1', + 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', + 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', + 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', + 'archive' => NULL, + ), + array ( + 'id' => '35', + 'fk_competence_domain' => '11', + 'name' => 'Collaborer à des projets', + 'symbol' => 'F2', + 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', + 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', + 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet', + 'archive' => NULL, + ), + array ( + 'id' => '36', + 'fk_competence_domain' => '11', + 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', + 'symbol' => 'F3', + 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', + 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise', + 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', + 'archive' => NULL, + ), + array ( + 'id' => '42', + 'fk_competence_domain' => '12', + 'name' => 'Choisir et mettre en service une place de travail utilisateur', + 'symbol' => 'A1', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, +faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', + 'social' => 'Orientation client, communication écrite et orale.', + 'personal' => 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.', + 'archive' => NULL, + ), + array ( + 'id' => '43', + 'fk_competence_domain' => '12', + 'name' => 'Choisir et mettre en service des systèmes serveurs', + 'symbol' => 'A2', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des +checklists, travail durable (économiquement, écologiquement, +socialement).', + 'social' => 'Orientation client, communication écrite et orale.', + 'personal' => 'Auto-réflexion critique.', + 'archive' => NULL, + ), + array ( + 'id' => '44', + 'fk_competence_domain' => '12', + 'name' => 'Choisir des composants réseau et les mettre en service', + 'symbol' => 'A3', + 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des +checklists, technique commerciale, méthode durable de travail +(économiquement, écologiquement, socialement).', + 'social' => 'Communication écrite et orale, empathie, travail en groupe, +langage adapté au public cible.', + 'personal' => 'Auto-réflexion critique, capacités d‘abstraction.', + 'archive' => NULL, + ), + array ( + 'id' => '45', + 'fk_competence_domain' => '13', + 'name' => 'Planifier et installer des réseaux ainsi que leur topologie', + 'symbol' => 'B1', + 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.', + 'social' => 'Faire des entretiens professionnels en anglais.', + 'personal' => 'Méthode précise de travail, conscience de la responsabilité, +capacités d’abstraction.', + 'archive' => NULL, + ), + array ( + 'id' => '46', + 'fk_competence_domain' => '13', + 'name' => 'Planifier et assurer la sécurité réseau ainsi que l’accès distant', + 'symbol' => 'B2', + 'methodologic' => 'Déroulement analytique, principe de Pareto.', + 'social' => 'Reconnaître et classer les besoins en sécurité du client.', + 'personal' => 'Travail précis, conscience de la responsabilité.', + 'archive' => NULL, + ), + array ( + 'id' => '47', + 'fk_competence_domain' => '13', + 'name' => 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement', + 'symbol' => 'B3', + 'methodologic' => 'Agir de manière préventive.', + 'social' => 'Conscience de la hiérarchie.', + 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.', + 'archive' => NULL, + ), + array ( + 'id' => '48', + 'fk_competence_domain' => '13', + 'name' => 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau', + 'symbol' => 'B4', + 'methodologic' => 'Agir de manière préventive.', + 'social' => '', + 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.', + 'archive' => NULL, + ), + array ( + 'id' => '49', + 'fk_competence_domain' => '14', + 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', + 'symbol' => 'C1', + 'methodologic' => 'Techniques d’interrogation.', + 'social' => 'Empathie.', + 'personal' => 'Comprendre et interpréter des documents anglais.', + 'archive' => NULL, + ), + array ( + 'id' => '50', + 'fk_competence_domain' => '14', + 'name' => 'Mettre en service et configurer les services étendus des serveurs', + 'symbol' => 'C2', + 'methodologic' => 'Techniques d‘entretiens, pensées préventive et systématique, +considération globale, remise en question systématique.', + 'social' => 'Travail en groupe.', + 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', + 'archive' => NULL, + ), + array ( + 'id' => '51', + 'fk_competence_domain' => '14', + 'name' => 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)', + 'symbol' => 'C3', + 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.', + 'social' => 'Travailler en groupe.', + 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', + 'archive' => NULL, + ), + array ( + 'id' => '52', + 'fk_competence_domain' => '14', + 'name' => 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage', + 'symbol' => 'C4', + 'methodologic' => 'Actions préventives.', + 'social' => 'Conseil.', + 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.', + 'archive' => NULL, + ), + array ( + 'id' => '53', + 'fk_competence_domain' => '14', + 'name' => 'Offrir des services via le réseau en prenant des mesures de sécurité', + 'symbol' => 'C5', + 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.', + 'social' => 'Travailler en groupe.', + 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', + 'archive' => NULL, + ), + array ( + 'id' => '54', + 'fk_competence_domain' => '15', + 'name' => 'Assurer la maintenance de réseaux et les développer', + 'symbol' => 'D1', + 'methodologic' => 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', + 'social' => '', + 'personal' => 'Précision, fiable, actions attentives.', + 'archive' => NULL, + ), + array ( + 'id' => '55', + 'fk_competence_domain' => '15', + 'name' => 'Assurer la maintenance et administrer des serveurs', + 'symbol' => 'D2', + 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable +(économiquement, écologiquement, socialement).', + 'social' => 'Travail en groupe, entretien professionnel en anglais.', + 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.', + 'archive' => NULL, + ), + array ( + 'id' => '56', + 'fk_competence_domain' => '15', + 'name' => 'Assurer la maintenance et administrer les équipements des utilisateurs', + 'symbol' => 'D3', + 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.', + 'social' => 'Travail en groupe, comportement diplomatique avec les utilisateurs.', + 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.', + 'archive' => NULL, + ), + array ( + 'id' => '57', + 'fk_competence_domain' => '15', + 'name' => 'Enregistrer, standardiser et automatiser des processus TIC', + 'symbol' => 'D4', + 'methodologic' => 'Déroulement structuré et orienté objectif, pensée et action préventive.', + 'social' => 'Conseil, comportement dans des situations de stress.', + 'personal' => 'Penser et travailler de manière disciplinée.', + 'archive' => NULL, + ), + array ( + 'id' => '58', + 'fk_competence_domain' => '15', + 'name' => 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications', + 'symbol' => 'D5', + 'methodologic' => 'Pensée préventive.', + 'social' => 'Appliquer l’anglais oralement et par écrit.', + 'personal' => 'Réflexion, discipline et capacité d‘endurance.', + 'archive' => NULL, + ), + array ( + 'id' => '59', + 'fk_competence_domain' => '16', + 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', + 'symbol' => 'E1', + 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', + 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', + 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.', + 'archive' => NULL, + ), + array ( + 'id' => '60', + 'fk_competence_domain' => '16', + 'name' => 'Collaborer à des projets', + 'symbol' => 'E2', + 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', + 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', + 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.', + 'archive' => NULL, + ), + array ( + 'id' => '61', + 'fk_competence_domain' => '16', + 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', + 'symbol' => 'E3', + 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.', + 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.', + 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.', + 'archive' => NULL, + ), + array ( + 'id' => '62', + 'fk_competence_domain' => '17', + 'name' => 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance', + 'symbol' => 'A1', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '63', + 'fk_competence_domain' => '17', + 'name' => 'Installer et configurer des applications standard', + 'symbol' => 'A2', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', + 'social' => '', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '64', + 'fk_competence_domain' => '17', + 'name' => 'Exécuter et évaluer des tests de fonctionnalité', + 'symbol' => 'A3', + 'methodologic' => 'Techniques de travail, comportement économique.', + 'social' => '', + 'personal' => 'Autonomie et responsabilité.', + 'archive' => NULL, + ), + array ( + 'id' => '65', + 'fk_competence_domain' => '17', + 'name' => 'Mettre en œuvre des scripts d’automatisation', + 'symbol' => 'A4', + 'methodologic' => 'Techniques de travail, comportement économique.', + 'social' => '', + 'personal' => 'Autonomie et responsabilité.', + 'archive' => NULL, + ), + array ( + 'id' => '66', + 'fk_competence_domain' => '18', + 'name' => 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes', + 'symbol' => 'B1', + 'methodologic' => 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '67', + 'fk_competence_domain' => '18', + 'name' => 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes', + 'symbol' => 'B2', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '68', + 'fk_competence_domain' => '18', + 'name' => 'Assurer la sécurité des terminaux ICT utilisateurs', + 'symbol' => 'B3', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', + 'social' => 'Capacité à communiquer.', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '69', + 'fk_competence_domain' => '19', + 'name' => 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT', + 'symbol' => 'C1', + 'methodologic' => 'Techniques de travail, techniques de présentation, comportement économique.', + 'social' => 'Capacité à communiquer.', + 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.', + 'archive' => NULL, + ), + array ( + 'id' => '70', + 'fk_competence_domain' => '19', + 'name' => 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs', + 'symbol' => 'C2', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', + 'social' => 'Capacité à communiquer.', + 'personal' => 'Autonomie et responsabilité, flexibilité.', + 'archive' => NULL, + ), + array ( + 'id' => '71', + 'fk_competence_domain' => '19', + 'name' => 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT', + 'symbol' => 'C3', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, flexibilité.', + 'archive' => NULL, + ), + array ( + 'id' => '72', + 'fk_competence_domain' => '20', + 'name' => 'Traiter les demandes des clients au 1er et 2e niveau du support', + 'symbol' => 'D1', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', + 'archive' => NULL, + ), + array ( + 'id' => '73', + 'fk_competence_domain' => '20', + 'name' => 'Se comporter de manière adéquate avec les clients et l’équipe', + 'symbol' => 'D2', + 'methodologic' => 'Techniques de travail, stratégies d’information et de communication.', + 'social' => 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.', + 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité.', + 'archive' => NULL, + ), + array ( + 'id' => '74', + 'fk_competence_domain' => '20', + 'name' => 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets', + 'symbol' => 'D3', + 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.', + 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', + 'personal' => 'Autonomie et responsabilité, flexibilité.', + 'archive' => NULL, + ), + array ( + 'id' => '75', + 'fk_competence_domain' => '25', + 'name' => 'aa', + 'symbol' => 'aa', + 'methodologic' => '', + 'social' => '', + 'personal' => '', + 'archive' => NULL, + ), + array ( + 'id' => '76', + 'fk_competence_domain' => '25', + 'name' => 'aa', + 'symbol' => 'aa', + 'methodologic' => '', + 'social' => '', + 'personal' => '', + 'archive' => NULL, + ), + ]; + foreach ($operational_competences as $operational_competence){ + $this->db->table('operational_competence')->insert($operational_competence); + } + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php new file mode 100644 index 00000000..2edc68c2 --- /dev/null +++ b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php @@ -0,0 +1,41 @@ + '10', + 'fk_trainer' => '2', + 'fk_apprentice' => '4', + ), + array ( + 'id' => '11', + 'fk_trainer' => '3', + 'fk_apprentice' => '4', + ), + array ( + 'id' => '2', + 'fk_trainer' => '3', + 'fk_apprentice' => '5', + ), + array ( + 'id' => '3', + 'fk_trainer' => '6', + 'fk_apprentice' => '7', + ), + ]; + foreach ($trainer_apprentices as $trainer_apprentice) + $this->db->table('trainer_apprentice')->insert($trainer_apprentice); + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserCoursesDatas.php b/orif/plafor/Database/Seeds/addUserCoursesDatas.php new file mode 100644 index 00000000..b02d6ba3 --- /dev/null +++ b/orif/plafor/Database/Seeds/addUserCoursesDatas.php @@ -0,0 +1,53 @@ + '1', + 'fk_user' => '4', + 'fk_course_plan' => '1', + 'fk_status' => '1', + 'date_begin' => '2020-07-09', + 'date_end' => '0000-00-00', + ), + array ( + 'id' => '2', + 'fk_user' => '5', + 'fk_course_plan' => '3', + 'fk_status' => '1', + 'date_begin' => '2020-07-09', + 'date_end' => '0000-00-00', + ), + array ( + 'id' => '3', + 'fk_user' => '7', + 'fk_course_plan' => '4', + 'fk_status' => '1', + 'date_begin' => '2020-07-09', + 'date_end' => '0000-00-00', + ), + array ( + 'id' => '4', + 'fk_user' => '5', + 'fk_course_plan' => '1', + 'fk_status' => '1', + 'date_begin' => '2021-05-06', + 'date_end' => '2021-08-20', + ), + ]; + foreach ($user_courses as $user_course){ + $this->db->table('user_course')->insert($user_course); + } + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserCoursesStatusDatas.php b/orif/plafor/Database/Seeds/addUserCoursesStatusDatas.php new file mode 100644 index 00000000..67622c40 --- /dev/null +++ b/orif/plafor/Database/Seeds/addUserCoursesStatusDatas.php @@ -0,0 +1,41 @@ + '1', + 'name' => 'En cours', + ), + array ( + 'id' => '2', + 'name' => 'Réussi', + ), + array ( + 'id' => '3', + 'name' => 'Échouée', + ), + array ( + 'id' => '4', + 'name' => 'Suspendue', + ), + array ( + 'id' => '5', + 'name' => 'Abandonnée', + ), + ]; + foreach ($user_courses_status as $user_course_status){ + $this->db->table('user_course_status')->insert($user_course_status); + } + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserDatas.php b/orif/plafor/Database/Seeds/addUserDatas.php new file mode 100644 index 00000000..a759d59f --- /dev/null +++ b/orif/plafor/Database/Seeds/addUserDatas.php @@ -0,0 +1,76 @@ + '1', + 'fk_user_type' => '1', + 'username' => 'admin', + 'password' => '$2y$10$tUB5R1MGgbO.zD//WArnceTY8IgnFkVVsudIdHBxIrEXJ2z3WBvcK', + 'archive' => NULL, + 'date_creation' => '2020-07-09 08:11:05', + ), + array ( + 'id' => '2', + 'fk_user_type' => '2', + 'username' => 'FormateurDev', + 'password' => '$2y$10$Q3H8WodgKonQ60SIcu.eWuVKXmxqBw1X5hMpZzwjRKyCTB1H1l.pe', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:15:24', + ), + array ( + 'id' => '3', + 'fk_user_type' => '2', + 'username' => 'FormateurSysteme', + 'password' => '$2y$10$Br7mIRYfLufWkrSpi2SyB.Wz0vHZQp7dQf7f2bKy5i/CkhHomSvli', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:15:47', + ), + array ( + 'id' => '4', + 'fk_user_type' => '3', + 'username' => 'ApprentiDev', + 'password' => '$2y$10$6TLaMd5ljshybxANKgIYGOjY0Xur9EgdzcEPy1bgy2b8uyWYeVoEm', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:16:05', + ), + array ( + 'id' => '5', + 'fk_user_type' => '3', + 'username' => 'ApprentiSysteme', + 'password' => '$2y$10$0ljkGcDQpTc0RDaN7Y2XcOhS8OB0t0QIhquLv9NcR79IVO9rCR/0.', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:16:27', + ), + array ( + 'id' => '6', + 'fk_user_type' => '2', + 'username' => 'FormateurOperateur', + 'password' => '$2y$10$SbMYPxqnngLjxVGlG4hW..lrc.pr5Dd74nY.KqdANtEESIvmGRpWi', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:24:22', + ), + array ( + 'id' => '7', + 'fk_user_type' => '3', + 'username' => 'ApprentiOperateur', + 'password' => '$2y$10$jPNxV2ZZ6Il2LiBQ.CWhNOoud6NsMRFILwHN8kpD410shWeiGpuxK', + 'archive' => NULL, + 'date_creation' => '2020-07-09 13:24:45', + ), + ]; + foreach ($users as $user){ + $this->db->table('user')->insert($user); + } + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserTypeDatas.php b/orif/plafor/Database/Seeds/addUserTypeDatas.php new file mode 100644 index 00000000..dfb00841 --- /dev/null +++ b/orif/plafor/Database/Seeds/addUserTypeDatas.php @@ -0,0 +1,35 @@ + '1', + 'name' => 'Administrateur', + 'access_level' => '4', + ), + array ( + 'id' => '2', + 'name' => 'Formateur', + 'access_level' => '2', + ), + array ( + 'id' => '3', + 'name' => 'Apprenti', + 'access_level' => '1', + ), + ]; + foreach ($user_types as $user_type){ + $this->db->table('user_type')->insert($user_type); + } + } +} \ No newline at end of file diff --git a/orif/user/Database/Migrations/2021-06-14-090828_add_user_type.php b/orif/user/Database/Migrations/2021-02-14-090828_add_user_type.php similarity index 85% rename from orif/user/Database/Migrations/2021-06-14-090828_add_user_type.php rename to orif/user/Database/Migrations/2021-02-14-090828_add_user_type.php index c509c800..2e99dc26 100644 --- a/orif/user/Database/Migrations/2021-06-14-090828_add_user_type.php +++ b/orif/user/Database/Migrations/2021-02-14-090828_add_user_type.php @@ -34,7 +34,10 @@ public function up() $this->forge->addKey('id',true); $this->forge->createTable('user_type',true); $seeder=\Config\Database::seeder(); - $seeder->call('\User\Database\Seeds\AddUserTypeDatas'); + //for plafor module + //$seeder->call('\User\Database\Seeds\AddUserTypeDatas'); + $seeder->call('\Plafor\Database\Seeds\addUserTypeDatas'); + } /** diff --git a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php index 4c3898ec..1e35a120 100644 --- a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php +++ b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php @@ -21,6 +21,7 @@ public function up() 'fk_user_type'=>[ 'type' => 'INT', 'unsigned' => true, + 'null' => false, ], 'username'=>[ 'type' => 'VARCHAR', @@ -42,11 +43,13 @@ public function up() 'date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP', ]); - $this->forge->addKey('id',true); + $this->forge->addKey('id',true,true); $this->forge->addForeignKey('fk_user_type','user_type','id'); $this->forge->createTable('user',true); $seeder=\Config\Database::seeder(); - $seeder->call('\User\Database\Seeds\AddUserDatas'); + //for plafor module + //$seeder->call('\User\Database\Seeds\AddUserDatas'); + $seeder->call('\Plafor\Database\Seeds\addUserDatas'); } /** From fe818cd9f3e99cf8fb9ac3aea6f3fc41a89645c2 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 18 Jun 2021 09:00:05 +0200 Subject: [PATCH 084/172] updated migration --- .../Database/Migrations/2021-06-14-090828_AddComment.php | 4 ++-- .../Migrations/2021-06-14-090828_AddTrainerApprentice.php | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php index 714a5dac..fcfdd61e 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddComment.php @@ -33,8 +33,8 @@ public function up() { ]); $this->forge->addKey('id', true, true); - $this->forge->addKey('fk_trainer', false); - $this->forge->addKey('fk_acquisition_status', false); + $this->forge->addForeignKey('fk_trainer', 'user','id'); + $this->forge->addForeignKey('fk_acquisition_status', 'acquisition_status','id'); $this->forge->createTable('Comment'); } diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php index fe9f652a..1a41c4a9 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php @@ -26,6 +26,9 @@ public function up() ], ]); $this->forge->addKey('id',true,true); + $this->forge->addForeignKey('fk_trainer','user','id'); + $this->forge->addForeignKey('fk_apprentice','user','id'); + $this->forge->createTable('trainer_apprentice'); $seeder = \Config\Database::seeder(); $seeder->call('\Plafor\Database\Seeds\addTrainerApprenticeDatas'); From 55c8094e013cc02b2f5317249b8cd4174b36dab4 Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Tue, 22 Jun 2021 13:36:24 +0200 Subject: [PATCH 085/172] addding js delete comment --- orif/plafor/Controllers/Apprentice.php | 18 +++++++++-- orif/plafor/Language/fr/plafor_lang.php | 1 + orif/plafor/Models/acquisitionStatusModel.php | 2 +- orif/plafor/Views/acquisition_status/view.php | 14 +++++--- orif/plafor/Views/comment/delete.php | 0 orif/plafor/Views/comment/save.php | 11 ++++--- orif/plafor/Views/user_course/view.php | 3 +- orif/user/Models/User_model.php | 16 ++++++++-- public/notif.html | 13 ++++++++ public/notif.js | 32 +++++++++++++++++++ 10 files changed, 93 insertions(+), 17 deletions(-) create mode 100644 orif/plafor/Views/comment/delete.php create mode 100644 public/notif.html create mode 100644 public/notif.js diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 406f0d24..7c36fbe3 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -342,7 +342,6 @@ public function view_acquisition_status($acquisition_status_id = null){ $acquisition_level=AcquisitionStatusModel::getAcquisitionLevel($acquisition_status['fk_acquisition_level']); if($acquisition_status == null){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); - exit(); } $comments = CommentModel::getInstance()->where('fk_acquisition_status',$acquisition_status_id)->findAll(); @@ -410,10 +409,10 @@ public function save_acquisition_status($acquisition_status_id = 0) { return $this->display_view('Plafor\acquisition_status/save', $output); } - public function add_comment($acquisition_status_id = null){ + public function add_comment($acquisition_status_id = null, $comment_id = null){ $acquisition_status = AcquisitionStatusModel::getInstance()->find($acquisition_status_id); - if($acquisition_status == null || $_SESSION['user_access'] != config('\User\Config\UserConfig')->access_lvl_trainer){ + if($acquisition_status == null || $_SESSION['user_access'] < config('\User\Config\UserConfig')->access_lvl_trainer){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); } @@ -432,19 +431,32 @@ public function add_comment($acquisition_status_id = null){ 'comment' => $this->request->getPost('comment'), 'date_creation' => date('Y-m-d H:i:s'), ); + if($comment_id == null) CommentModel::getInstance()->insert($comment); + else + CommentModel::getInstance()->update($comment_id, $comment); return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status['id'])); } + } + $comment = CommentModel::getInstance()->find($comment_id); + $output = array( 'title'=>lang('plafor_lang.title_comment_save'), 'acquisition_status' => $acquisition_status, + 'comment_id' => $comment_id, + 'commentValue' => ($comment['comment']??'') ); return $this->display_view('\Plafor\comment/save',$output); } + + public function delete_comment($comment_id = 0, $acquisition_status_id = 0) { + CommentModel::getInstance()->delete($comment_id); + return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status_id)); + } /** * Show details of the selected operational competence * diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index 0ed4b55b..e7c89111 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -67,6 +67,7 @@ 'title_acquisition_status_save' =>'Ajouter un statut d\'acquisition', //Comment 'title_comment_save'=>'Ajouter un commentaire', + 'comment_delete' => 'souhaitez-vous supprimer le commentaire ?', ]; \ No newline at end of file diff --git a/orif/plafor/Models/acquisitionStatusModel.php b/orif/plafor/Models/acquisitionStatusModel.php index d9c123f1..6087887b 100644 --- a/orif/plafor/Models/acquisitionStatusModel.php +++ b/orif/plafor/Models/acquisitionStatusModel.php @@ -28,7 +28,7 @@ public static function getInstance(){ * @return array|null */ public static function getObjective($fkObjectiveId){ - return ObjectiveModel::getInstance()->find($fkObjectiveId); + return ObjectiveModel::getInstance()->withDeleted()->find($fkObjectiveId); } /** diff --git a/orif/plafor/Views/acquisition_status/view.php b/orif/plafor/Views/acquisition_status/view.php index e1ebb9cd..701f24a5 100644 --- a/orif/plafor/Views/acquisition_status/view.php +++ b/orif/plafor/Views/acquisition_status/view.php @@ -21,7 +21,7 @@

    - = config('\User\Config\UserConfig')->ACCESS_LVL_TRAINER) { ?> + = config('\User\Config\UserConfig')->access_lvl_trainer) { ?>
    @@ -42,16 +42,22 @@ foreach ($comments as $comment): ?>
    - + - + - + + +
    ×
    ×
    ×
    ×
    ×
    + \ No newline at end of file diff --git a/orif/plafor/Views/comment/delete.php b/orif/plafor/Views/comment/delete.php new file mode 100644 index 00000000..e69de29b diff --git a/orif/plafor/Views/comment/save.php b/orif/plafor/Views/comment/save.php index 6caad1f4..b953e318 100644 --- a/orif/plafor/Views/comment/save.php +++ b/orif/plafor/Views/comment/save.php @@ -1,5 +1,5 @@ - 'comment', 'max' => config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH, 'class' => 'form-control', - 'id' => 'comment' + 'id' => 'comment', + 'value' => ($commentValue??'') ); helper('form'); $validation=\CodeIgniter\Config\Services::validation() @@ -26,7 +27,7 @@ 'id' => 'comment_form', 'name' => 'comment_form' ); - echo form_open(base_url('plafor/apprentice/add_comment/'.$acquisition_status['id'])); + echo form_open(base_url('plafor/apprentice/add_comment/'.$acquisition_status['id'].'/'.($comment_id??''))); ?> @@ -49,7 +50,7 @@
    - + 'btn btn-primary']); ?>
    diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php index 67c3c6fd..a50304d9 100644 --- a/orif/plafor/Views/user_course/view.php +++ b/orif/plafor/Views/user_course/view.php @@ -45,7 +45,8 @@ - + diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index c281d2d5..0742d72a 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -91,9 +91,19 @@ public static function getApprentices(bool $withDeleted=false){ * @return array the list of trainers */ public static function getTrainers(bool $withDelted=false){ - if ($withDelted) - return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->withDeleted()->findAll(); - return User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->findAll(); + $indexedTrainers = array(); + if ($withDelted) { + $trainers = User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->withDeleted()->findAll(); + foreach ($trainers as $trainer) { + $indexedTrainers[$trainer['id']] = $trainer; + } + return $indexedTrainers; + } + $trainers = User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name','Formateur')->first()['id'])->findAll(); + foreach ($trainers as $trainer) { + $indexedTrainers[$trainer['id']] = $trainer; + } + return $indexedTrainers; } diff --git a/public/notif.html b/public/notif.html new file mode 100644 index 00000000..847b7417 --- /dev/null +++ b/public/notif.html @@ -0,0 +1,13 @@ + + + +
    +

    + Voulez vous vraiment supprimer le commentaire ? +

    +
    +
    + + +
    + diff --git a/public/notif.js b/public/notif.js new file mode 100644 index 00000000..e9dc72ff --- /dev/null +++ b/public/notif.js @@ -0,0 +1,32 @@ +function displayNotif(posX, posY, langs) { + let brownElement = document.createElement('div'); + brownElement.style.backgroundColor = "#9e895a"; + brownElement.style.display = "block"; + brownElement.style.width = "100%"; + brownElement.style.height = "7px"; + let root_notif = document.createElement('div'); + root_notif.style.borderRadius = "10px"; + root_notif.style.backgroundColor = 'white'; + let body = `
    ${brownElement.outerHTML}
    ${langs.message}
    `; + root_notif.innerHTML = body; + console.log(brownElement.outerHTML); + root_notif.style.position = "absolute"; + root_notif.style.top = posY+"px"; + root_notif.style.left = posX+"px"; + document.body.appendChild(root_notif); + let exitOnClick = (e)=>{console.log(root_notif.getBoundingClientRect()); + console.log(e); + let boundingClient = root_notif.getBoundingClientRect(); + if(e.clientX < boundingClient.left || e.clientX >= boundingClient.width + boundingClient.left || e.clientY < boundingClient.top || e.clientY > boundingClient.height + boundingClient.top) { + //Click en dehors de la fenetre + document.body.removeChild(root_notif); + window.removeEventListener('click', exitOnClick); + } + } + + + window.addEventListener('click', exitOnClick); + document.getElementById('btncancel').addEventListener('click', (e)=>{document.body.removeChild(root_notif); + window.removeEventListener('click', exitOnClick)}); + document.getElementById('btncontinue').addEventListener('click', (e)=>{window.location = langs.url}); +} \ No newline at end of file From 247ef3012c054d4654c585cebb119640598ded3c Mon Sep 17 00:00:00 2001 From: LxckedOnTrap <79834712+LxckedOnTrap@users.noreply.github.com> Date: Wed, 23 Jun 2021 09:58:14 +0200 Subject: [PATCH 086/172] add verif comments delete --- public/css/MY_styles.css | 7 +++++++ public/notif.js | 26 +++++++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/public/css/MY_styles.css b/public/css/MY_styles.css index dfff1fbe..9b8ae124 100644 --- a/public/css/MY_styles.css +++ b/public/css/MY_styles.css @@ -19,3 +19,10 @@ li.nav-item { margin: 0 10px; } + +.show { + opacity: 1!important; + width: 250px!important; + transition: all 0.4s; + color: unset!important; +} diff --git a/public/notif.js b/public/notif.js index e9dc72ff..94cc891a 100644 --- a/public/notif.js +++ b/public/notif.js @@ -1,3 +1,4 @@ +let openedNotif = new Array(); function displayNotif(posX, posY, langs) { let brownElement = document.createElement('div'); brownElement.style.backgroundColor = "#9e895a"; @@ -7,19 +8,34 @@ function displayNotif(posX, posY, langs) { let root_notif = document.createElement('div'); root_notif.style.borderRadius = "10px"; root_notif.style.backgroundColor = 'white'; - let body = `
    ${brownElement.outerHTML}
    ${langs.message}
    `; + let body = `
    ${brownElement.outerHTML}
    ${langs.message}
    `; root_notif.innerHTML = body; - console.log(brownElement.outerHTML); + root_notif.style.width = "1px"; + root_notif.style.color = "transparent"; + root_notif.style.height = "50px"; + root_notif.style.maxHeight = "50px"; root_notif.style.position = "absolute"; + root_notif.style.opacity='0'; root_notif.style.top = posY+"px"; root_notif.style.left = posX+"px"; + for(let i = 0; i{console.log(root_notif.getBoundingClientRect()); - console.log(e); + setTimeout(()=>{root_notif.classList.add('show')},10); + + let exitOnClick = (e)=>{ let boundingClient = root_notif.getBoundingClientRect(); if(e.clientX < boundingClient.left || e.clientX >= boundingClient.width + boundingClient.left || e.clientY < boundingClient.top || e.clientY > boundingClient.height + boundingClient.top) { //Click en dehors de la fenetre - document.body.removeChild(root_notif); + try { + document.body.removeChild(root_notif); + } catch(error) {} + window.removeEventListener('click', exitOnClick); } } From d4d073d0951abedfac41d432fa72bc4183c45558 Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 25 Jun 2021 08:30:57 +0200 Subject: [PATCH 087/172] updated acquisition status and aded title to save view --- orif/plafor/Controllers/Apprentice.php | 2 +- orif/plafor/Language/fr/plafor_lang.php | 1 + orif/plafor/Views/acquisition_status/save.php | 4 ++-- orif/plafor/Views/acquisition_status/view.php | 8 ++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 7c36fbe3..33484df6 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -387,7 +387,7 @@ public function save_acquisition_status($acquisition_status_id = 0) { $this->validation->setRules(['field_acquisition_level'=>[ 'label'=>'user_lang.field_acquisition_level', - 'rules'=>'required in_list['.implode(',', array_keys($acquisitionLevels)).']' + 'rules'=>'required|in_list['.implode(',', array_keys($acquisitionLevels)).']' ]]); if ($this->validation->withRequest($this->request)->run()) { diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index e7c89111..7a89eeed 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -65,6 +65,7 @@ //Acquisition status 'title_acquisition_status_view'=>'Afficher les détails des status d\'acquisition', 'title_acquisition_status_save' =>'Ajouter un statut d\'acquisition', + 'title_acquisition_status_edit' => 'Modifier un statut d\'acquisition', //Comment 'title_comment_save'=>'Ajouter un commentaire', 'comment_delete' => 'souhaitez-vous supprimer le commentaire ?', diff --git a/orif/plafor/Views/acquisition_status/save.php b/orif/plafor/Views/acquisition_status/save.php index 8fb3cbd9..3445e28a 100644 --- a/orif/plafor/Views/acquisition_status/save.php +++ b/orif/plafor/Views/acquisition_status/save.php @@ -6,7 +6,7 @@
    -

    +

    @@ -33,7 +33,7 @@ 'form-label']); ?>
    - 'field_acquisition_level', 'class' => 'form-control'], $acquisition_level, ); ?> + 'field_acquisition_level', 'class' => 'form-control'] ); ?>
    diff --git a/orif/plafor/Views/acquisition_status/view.php b/orif/plafor/Views/acquisition_status/view.php index 701f24a5..0cf2c92b 100644 --- a/orif/plafor/Views/acquisition_status/view.php +++ b/orif/plafor/Views/acquisition_status/view.php @@ -4,17 +4,17 @@

    - +

    - +

    - +

    - +
    From 1b7ffd685d4adfbfed778d8d978d9fe0f368591d Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 25 Jun 2021 11:12:17 +0200 Subject: [PATCH 088/172] updated controller to see informations about desactivated elements --- orif/plafor/Controllers/Admin.php | 26 ++++++++++++------- orif/plafor/Controllers/Apprentice.php | 16 +++++++----- orif/plafor/Models/competenceDomainModel.php | 4 +-- orif/plafor/Models/objectiveModel.php | 4 +-- orif/plafor/Views/course_plan/list.php | 2 +- orif/plafor/Views/objective/delete.php | 2 +- .../Views/operational_competence/save.php | 2 +- orif/user/Language/fr/user_lang.php | 1 + 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 90d7520f..91973185 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -101,7 +101,7 @@ public function save_course_plan($course_plan_id = 0) } return redirect()->to(base_url('/plafor/admin/list_course_plan')); } - else { + else {//lastdatas takes the last datas if they arent't valid $lastDatas = array( 'formation_number' => $this->request->getPost('formation_number'), 'official_name' => ' '.$this->request->getPost('official_name'), @@ -115,7 +115,7 @@ public function save_course_plan($course_plan_id = 0) $formTitle = $course_plan_id<>0?'update' : 'new'; $output = array( 'title' => (lang('plafor_lang.title_course_plan_'.$formTitle)), - 'course_plan' => CoursePlanModel::getInstance()->find($course_plan_id)==null?$lastDatas:CoursePlanModel::getInstance()->find($course_plan_id) + 'course_plan' => $lastDatas!=null?$lastDatas:CoursePlanModel::getInstance()->withDeleted()->find($course_plan_id) ); $this->display_view('\Plafor\course_plan\save', $output); @@ -158,9 +158,12 @@ public function delete_course_plan($course_plan_id, $action = 0) //get all operationnal competences in an array($operational_competences) which format is [[:competencedomainid]=>[operationalCompetence id, name, etc...],[:competencedomainid]=>[operationalCompetence id, name, etc...] $operationalCompetences[$competence_domain['id']]=CompetenceDomainModel::getOperationalCompetences($competence_domain['id']); //get all objectives assiociated with an operational_competence in an array($objectives) which format is [[operationalcompetenceid]=>[objectives id,fkop, symbol, etc...] - foreach ($operationalCompetences as list($operationalCompetence)){ - $objectives[$operationalCompetence['id']]=OperationalCompetenceModel::getObjectives($operationalCompetence['id']); - } + try { + foreach ($operationalCompetences as list($operationalCompetence)) { + $objectives[$operationalCompetence['id']] = OperationalCompetenceModel::getObjectives($operationalCompetence['id']); + } + }catch (\Exception $e){}; + } //get all ids $competenceDomainIds=array_column($competenceDomains,'id'); @@ -199,7 +202,7 @@ public function list_competence_domain($id_course_plan = null , $with_archived = $competence_domains = CompetenceDomainModel::getCompetenceDomains($with_archived); }else{ $course_plan = CoursePlanModel::getInstance()->find($id_course_plan); - $competence_domains = CompetenceDomainModel::getCompetenceDomains($with_archived, $course_plan['id']); + $competence_domains = CompetenceDomainModel::getCompetenceDomains((bool)$with_archived, $id_course_plan); } @@ -369,6 +372,9 @@ public function save_operational_competence($operational_competence_id = 0, $com ], ); $this->validation->setRules($rules); + + + if ($this->validation->withRequest($this->request)->run()) { $operational_competence = array( 'symbol' => $this->request->getPost('symbol'), @@ -387,12 +393,13 @@ public function save_operational_competence($operational_competence_id = 0, $com } } $competenceDomains=[]; + foreach (CompetenceDomainModel::getInstance()->withDeleted()->findAll() as $competenceDomain){ + $competenceDomains[CompetenceDomainModel::getInstance()->withDeleted()->where('id',$competenceDomain['id'])->first()['id']]=$competenceDomain['name']; - foreach (CompetenceDomainModel::getInstance()->findAll() as $competenceDomain) - $competenceDomains[CompetenceDomainModel::getInstance()->where('id',$competenceDomain['id'])->first()['id']]=$competenceDomain['name']; + } $output = array( 'title' => lang('plafor_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), - 'operational_competence' => OperationalCompetenceModel::getInstance()->find($operational_competence_id), + 'operational_competence' => OperationalCompetenceModel::getInstance()->withDeleted()->find($operational_competence_id), 'competence_domains' => $competenceDomains, 'competence_domain_id' => $competence_domain_id ); @@ -589,7 +596,6 @@ public function save_objective($objective_id = 0, $operational_competence_id = 0 foreach (OperationalCompetenceModel::getInstance()->findAll() as $operationalCompetence) { $operationalCompetences[$operationalCompetence['id']]=$operationalCompetence['name']; } - $output = array( 'title' => lang('plafor_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), 'objective' => ObjectiveModel::getInstance()->withDeleted()->find($objective_id), diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 33484df6..ceda72c2 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -38,10 +38,10 @@ public function initController(\CodeIgniter\HTTP\RequestInterface $request, \Cod public function view_course_plan($course_plan_id = null) { - $course_plan = CoursePlanModel::getInstance()->find($course_plan_id); + $course_plan = CoursePlanModel::getInstance()->withDeleted(true)->find($course_plan_id); $competence_domains=CoursePlanModel::getCompetenceDomains($course_plan_id); if($course_plan == null){ - return redirect()->to(base_url('plafor/apprentice/list_course_plan')); + return redirect()->to(base_url('plafor/admin/list_course_plan')); } $output = array( @@ -140,7 +140,7 @@ public function view_apprentice($apprentice_id = null) */ public function view_competence_domain($competence_domain_id = null) { - $competence_domain = CompetenceDomainModel::getInstance()->find($competence_domain_id); + $competence_domain = CompetenceDomainModel::getInstance()->withDeleted()->find($competence_domain_id); if($competence_domain == null){ return redirect()->to(base_url('admin/list_competence_domain')); @@ -148,7 +148,7 @@ public function view_competence_domain($competence_domain_id = null) $output = array( 'title' =>lang('plafor_lang.title_view_competence_domain'), - 'course_plan' =>CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']) + 'course_plan' =>CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan'],true) , 'competence_domain' => $competence_domain, ); @@ -465,7 +465,7 @@ public function delete_comment($comment_id = 0, $acquisition_status_id = 0) { */ public function view_operational_competence($operational_competence_id = null) { - $operational_competence = OperationalCompetenceModel::getInstance()->find($operational_competence_id); + $operational_competence = OperationalCompetenceModel::getInstance()->withDeleted(true)->find($operational_competence_id); if($operational_competence == null){ return redirect()->to(base_url('plafor/admin/list_operational_competence')); @@ -491,13 +491,15 @@ public function view_operational_competence($operational_competence_id = null) */ public function view_objective($objective_id = null) { - $objective = ObjectiveModel::getInstance()->find($objective_id); + $objective = ObjectiveModel::getInstance()->withDeleted()->find($objective_id); if($objective == null){ return redirect()->to(base_url('plafor/admin/list_objective')); } - $operational_competence = ObjectiveModel::getOperationalCompetence($objective['fk_operational_competence']); + + $operational_competence = ObjectiveModel::getOperationalCompetence($objective['fk_operational_competence'],true); + $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 899d0a30..8f03a51f 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -28,9 +28,9 @@ public static function getInstance(){ * @param $fkCoursePlanId * @return array|null */ - public static function getCoursePlan($fkCoursePlanId){ + public static function getCoursePlan($fkCoursePlanId,$withArchived=false){ - return CoursePlanModel::getInstance()->find($fkCoursePlanId); + return CoursePlanModel::getInstance()->withDeleted($withArchived)->find($fkCoursePlanId); } diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 7519ab9b..8bde8dbd 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -30,8 +30,8 @@ public static function getInstance(){ * @param $fkOperationalCompetenceId * @return array|object|null */ - public static function getOperationalCompetence($fkOperationalCompetenceId){ - return OperationalCompetenceModel::getInstance()->find($fkOperationalCompetenceId); + public static function getOperationalCompetence($fkOperationalCompetenceId,$withDeleted=false){ + return OperationalCompetenceModel::getInstance()->withDeleted($withDeleted)->find($fkOperationalCompetenceId); } /** diff --git a/orif/plafor/Views/course_plan/list.php b/orif/plafor/Views/course_plan/list.php index 33714aac..0e1eb27c 100644 --- a/orif/plafor/Views/course_plan/list.php +++ b/orif/plafor/Views/course_plan/list.php @@ -42,7 +42,7 @@ - + diff --git a/orif/plafor/Views/objective/delete.php b/orif/plafor/Views/objective/delete.php index d0d393df..0262b626 100644 --- a/orif/plafor/Views/objective/delete.php +++ b/orif/plafor/Views/objective/delete.php @@ -7,7 +7,7 @@

    -
    +
    diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index 4fb80c8c..98907d86 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -60,7 +60,7 @@ 'id' => 'operational_competence_form', 'name' => 'operational_competence_form' ); - echo form_open('plafor/admin/save_operational_competence/'.($operational_competence['id'] ?? '0').'/'.($competence_domain_id>0?$competence_domain_id:''), $attributes, [ + echo form_open(base_url('plafor/admin/save_operational_competence/'.($operational_competence['id'] ?? '0').'/'.($competence_domain_id>0?$competence_domain_id:'')), $attributes, [ 'id' => $operational_competence['id'] ?? 0 ]); ?> diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index df03eb69..87980f8d 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -161,6 +161,7 @@ 'field_objectives_taxonomies' =>'Taxonomie des objectifs', 'field_objective_name' =>'Nom de l\'objectif', 'field_objectives_names' =>'Nom des objectifs', +'field_linked_objectives' =>'Objectifs liés à la compétence opérationnelle', 'field_user_course_date_begin' =>'Date du début de la formation', 'field_user_course_date_end' =>'Date de fin de la formation', 'field_user_course_course_plan' =>'Formation', From 2441e6a6f45e034c61315a9314cc57578f19276a Mon Sep 17 00:00:00 2001 From: HeMa Date: Mon, 28 Jun 2021 11:16:07 +0200 Subject: [PATCH 089/172] fixed some bugs, modified migration file and added use case shema --- app/Config/App.php | 4 ++-- documentation/schema d'utilisation.drawio | 1 + orif/plafor/Controllers/Apprentice.php | 6 +++++- .../Migrations/2021-06-14-090828_AddAcquisitionStatus.php | 1 + .../Migrations/2021-06-14-090828_AddTrainerApprentice.php | 1 + .../Migrations/2021-06-14-090828_AddUserCourse.php | 1 + .../Migrations/2021-06-14-090828_AddUserCourseStatus.php | 1 + orif/plafor/Views/user_course/view.php | 2 +- .../Migrations/2021-03-19-090830_add_ci_sessions.php | 8 +++----- 9 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 documentation/schema d'utilisation.drawio diff --git a/app/Config/App.php b/app/Config/App.php index 750bd29e..e186f000 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -218,7 +218,7 @@ class App extends BaseConfig * * @var integer */ - public $sessionTimeToUpdate = 300; + public $sessionTimeToUpdate = 20; /** * -------------------------------------------------------------------------- @@ -231,7 +231,7 @@ class App extends BaseConfig * * @var boolean */ - public $sessionRegenerateDestroy = false; + public $sessionRegenerateDestroy = true; /** * -------------------------------------------------------------------------- diff --git a/documentation/schema d'utilisation.drawio b/documentation/schema d'utilisation.drawio new file mode 100644 index 00000000..3af348f7 --- /dev/null +++ b/documentation/schema d'utilisation.drawio @@ -0,0 +1 @@ +7Vtdc6M2FP01nj4lIxAS8Og4bnfatLMzmenXS4cY2WYLiAqRxPvrK4EUkDFJvLH52PET6HLB4ujcq3MlPIOL5PknFmTbX2lI4pkNwucZvJ3ZtmV5SBykZVdZsDZsWBRWJlAb7qOvRN2prUUUklzZKhOnNOZRZhpXNE3Jihu2gDH6ZLqtaRwahizYkJbhfhXEbesfUci3ldVDoLZ/ItFmq3/ZAupKEmhnZci3QUifGia4nMEFo5RXZ8nzgsQSPBOXHzuuvnSMkZS/54bFz+Et3/xz9/jL8tPXq9XfMEL+FbJV5/hOvzEJBQCqSRnf0g1Ng3hZW28YLdKQyMcC0ap97ijNhNESxi+E850azaDgVJi2PInV1XUUxwsaU1b+IgwD4q1Xwp5zRv8ljSt45ZGHtbhS9VJ2rfPtlSmnBVuRV14ZuopGAdsQ/ho29SgJehOaEM524kZG4oBHj2ZPAsWzzYufunXOWLBrOGQ0SnneePJnaRAOKmREhFRP3GlGOeawvuWP/Ka/OKl6oFuNV6lNJVWOoQ2+0KYTGzQO2sCjaAOBc37a4EGyjRhqtvtT3V82/pKNa6Sbt8/Ni7c71ZoI3fxx0O24LOUg0APd4IVup6YbnuSkiGzUA92cC91OTjdrknTz+5hM/YsG63J0Jjkpoh6SlIbwMYgLBcM8TKK0xSVRrmYlBVZcDunN0zbi5D4LygF6EsW+yQv1VMI4eX59nNujom7wTTQ0v5/qsttVpm2j4vb87lFsQPkNNY43hvhCxAudQ/Hl2Q8Q4xPHl/de0ekOEV9QL6UohtiKzF3xte8PvT5EpztlFTBOuuGPltQfSgT4kgi6scHjSATeUYnAdeDs7InABRfajEufQcs/jjZ7/rgHVa8hbOizmY1jAeZNZpAJ/1fInYObOErJlRZEc+FiSbKj2kGcbeRxmebCKw3kG1YPFB3M9NUx6D9soG35cFgB6FotUAYIYA8AFx4K4DkCwAEnDmB/3AGsNw+1oKumn+4A3vNXI3retD+KHbVxsgbBKbLGhj2UDe7Ai4fXwIZm6QB9943ioWx9JiwSL0+YMnYzroujQzDRnSQTPauHBKYxbCiQZUwEJKNTCFA/YSiF4NgHxNrgyX+9Xturg2uyIX7A6MSa3wHvlQwfXcr/2FCB1lD9RtNZ/eHQAs7m7RX1wTmObWdgjsNRcLw5U7nInKkQsL5lpho2bPTHbG+FDRxEaevuvexMGFsTb7nvzWvnmaecgRdarwGyTB5iy/uOeeidgodt5rgGc2y966KfUPVL3VRT6uitOXgUn/fcbcfrgc+DLDN3bRy4R+4cjJW1J9moavHDMvOdBdFZWGvZR7F2z92CfWRhqyUP7kktq0SSa5E6jqMsl+TV4iqkxUNMli/284ssD12blZX+QKgps14+5W7qLAzOpbPaZdddlHOJpfwA3gbzLJOvF8lzIke9XtDNRwmyg80sCttKtl+IUbsGMCHO4iAtGzP5TwGWiBRB219GjANbk7+Wjv3hwG3XCb/TSIQ/iEtso3RN5TH8oZAYV/VWXB68A4sL4wDZJPChHYmeQUYtkOdfaFGmWVDiWtGWFCXwUUdVO0ZwbXfw9ND+NCowwW2RtrKAUrJEV0nZmifTYDPU6XA4wN+a8mQ+zlsJWVgWhK8mAbJjDw0ybk96ZcrQsH4HGPtDazd8QAQXUq7leSkgaqQPqItFqeemATXCQydp3DEDamBXNEnEywURG2sWNoUbht714PTF76Hv1JB1raHVmtuWxLGoiQsJIA4SCUH6kMvDRACGe1Wz67lng1g06/9GV6sV9T/M4fJ/ \ No newline at end of file diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index ceda72c2..cec299d4 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -215,7 +215,11 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ $competenceDomainIds[] = $competence_domain['id']; } - $operational_competences = OperationalCompetenceModel::getInstance()->whereIn('fk_competence_domain',$competenceDomainIds)->findAll(); + $operational_competences=[]; + // si il n'y a pas de compétence operationnelles associées + try { + $operational_competences = OperationalCompetenceModel::getInstance()->withDeleted()->whereIn('fk_competence_domain', $competenceDomainIds)->findAll(); + }catch (\Exception $e){}; $objectiveIds = array(); foreach ($operational_competences as $operational_competence){ foreach (OperationalCompetenceModel::getObjectives($operational_competence['id']) as $objective){ diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php index 42f3216e..a4d3777e 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddAcquisitionStatus.php @@ -17,6 +17,7 @@ public function up() 'id'=>[ 'type'=>'int', 'unsigned' => true, + 'auto_increment' => true, ], 'fk_objective'=>[ 'type'=>'int', diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php index 1a41c4a9..1169c5f8 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddTrainerApprentice.php @@ -11,6 +11,7 @@ public function up() 'id'=>[ 'type'=>'int', 'constraint'=>'11', + 'auto_increment'=>true, ], 'fk_trainer'=>[ 'type'=>'int', diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php index 7adeb957..92c1edac 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourse.php @@ -12,6 +12,7 @@ public function up() 'id'=>[ 'type'=>'int', 'unsigned' =>true, + 'auto_increment'=>true, ], 'fk_user'=>[ diff --git a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php index 3704b4e2..4ca76db9 100644 --- a/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php +++ b/orif/plafor/Database/Migrations/2021-06-14-090828_AddUserCourseStatus.php @@ -11,6 +11,7 @@ public function up() 'id'=>[ 'type'=>'int', 'unsigned' => true, + 'auto_increment'=>true, ], 'name'=>[ diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php index a50304d9..a60412ff 100644 --- a/orif/plafor/Views/user_course/view.php +++ b/orif/plafor/Views/user_course/view.php @@ -31,7 +31,7 @@ if(($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_admin) || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_trainer && in_array($_SESSION['user_id'], $trainers_id)) - || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_apprentice && $user_course['fk_user'] == $apprentice['id'])): ?> + || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_level_apprentice && $user_course['fk_user'] == $apprentice['id'])): ?>

    diff --git a/orif/user/Database/Migrations/2021-03-19-090830_add_ci_sessions.php b/orif/user/Database/Migrations/2021-03-19-090830_add_ci_sessions.php index 21e469c7..4d2798cb 100644 --- a/orif/user/Database/Migrations/2021-03-19-090830_add_ci_sessions.php +++ b/orif/user/Database/Migrations/2021-03-19-090830_add_ci_sessions.php @@ -23,17 +23,15 @@ public function up() 'constraint' => '45', 'null' => false, ], - 'timestamp'=>[ - 'type' => 'INT', - 'null' => false, - 'default' => 0, - ], + 'timestamp timestamp DEFAULT CURRENT_TIMESTAMP', 'data'=>[ 'type' => 'BLOB', 'null' => false, ] ]); + $this->forge->addPrimaryKey('id'); + $this->forge->addKey('timestamp'); $this->forge->createTable('ci_sessions',true); } From 400b006951ee8200d0ccfe2b1c15682042555bbe Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 29 Jun 2021 15:29:07 +0200 Subject: [PATCH 090/172] =?UTF-8?q?added=20sch=C3=A9ma=20droits.drawio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "documentation/sch\303\251ma droits.drawio" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "documentation/sch\303\251ma droits.drawio" diff --git "a/documentation/sch\303\251ma droits.drawio" "b/documentation/sch\303\251ma droits.drawio" new file mode 100644 index 00000000..078a4d30 --- /dev/null +++ "b/documentation/sch\303\251ma droits.drawio" @@ -0,0 +1 @@ +7ZxLc5s6FIB/DdNk4Rkejd0s/ajTRTOdO55pu5VBBqUCUSFip7/+6gUGGztO2tSiVhcNHAmdo6NPT/Bxgmm6uaMgT+5JBLHju9HGCWaO73vDUcD/CMmTktwOR0oQUxTpTFvBAv2CWuhqaYkiWLQyMkIwQ3lbGJIsgyFryQClZN3OtiK4rTUHMdwTLEKA96XfUMQSJf3gj7byTxDFSaXZG96qlBRUmXVNigREZN0QBR+dYEoJYeoq3UwhFs6r/KKemx9IrQ2jMGOnPBCvfTBkg/Lr9L9f6Mv9KLqbfRl4Q1XMI8ClrrHjDzEvcMLAkjvBd5eERpDKtOHPUlg78baXwvVcTw6iCGVxK9f7Vq6CPWmfVsK18ueYJ3out/2GX6i8ifZoR5KyZhASjEFeQJWnvqtzgfBHTEmZRSInoSobjZdX/o0sy5/y/3eur+vHVyRjg0KyKE0Y5ZsdA3SClBcEcx/zFMy1tuq8rompPadrs800jPVf5fQl4T2ly1udNh0shnaW8RpfPFvfYz47aF/UaR+DGzYAGMWZbleONqSnNcvBFnfrenmi17bquGvfnGQhQyQrKkN5dxK27lifmGn9OM/FYICaxid9MX5OKB8yYUl7af04SlF21HIhpCf207/Z504q4zMqmBhdxVTM51XN2TO95M/18V1zvlvF/ypbq65h4G96ulKx7Hbfi8qwtlvC9wjPMRDrC35X485XHBaZy7L9YnCPSApQBmviQ5LmzjRwxrcMZiE82xqiz/D02fY/B/6ZgN4H2CVaQOVQnkGMX8e10Y1vtHGWTIHh8gGGDK0se5a9t2dvvFqhMJEVxWp616MiQPIVwLuSL2rrswIzHXt5is1HSW+ROnZIlikzFZvJ1AMpVT0lM41zJVeOU26Vcm6a+jxt9dn2njO9OzZipKZfaBzgho5aFq1mGYuSU4LS7gGzYssOM5dlew85PrYrKbZLyAMrTBPdfHmK+wmWQAkD55kdi3tFlg/XZvr98hT3hLRnX6HYYa0HivsBG4cr5VUHiDbBqo6WxVhWFCSsF4SG7TWKIjW09S12zTKmCcji7YFfhh4hKCVuIPxZogK1588tfhYrQxQbidXOoV9jLHuNEy98f2fRapaxd0Bi4bJwveUq7LSPTKoZ0tTPrAylwOJ3FL+OQ7MOqLqhNNPvl6e4H6Q1vlmqXzOI68a20pLXM8X9IK/7xcC5d5qGNqll6UUsdb4LuGqOdYAxiDJ27RjzVZM94+gHfPckQiuk4NtF7G0+AjF6q2q0cReKaPOs5Bij/1hrG23cmVAUQhXTYl+uAoxUcr9lti/s5fKEpZgLPDFBMUp+wKn6kT7PEoyC+Xw2Fk5DGDfkK/mPy8kjpCssg66ILFwif+gPRUQUVzt7Ies880b8HoMlxBP5e7qquIzw/UdlHi+Om6Xs64i/4tVRXdLNHSQpZFTE8tAPvFcPrJtRZHRomKQVQaYKfQN06Jq4LopLdXQXfqEDvLwk2MvoYLAX4YmTeBx29vfFvUouYImhOBUV1+Jrh/AdLOQNQYNU9vtx2uz4Su8rEdBt02x9LdKczzTkwUS0HAoBHuuEFEWRUDNZJ4jBRQ5CoXNNQb4Hye80/dNumzZa37vpaP2bl7c9v90GEZJpd9tQTMHH/wE= \ No newline at end of file From 3441f7329983633ebd96deafd4858557b57a201a Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 8 Jul 2021 15:47:20 +0200 Subject: [PATCH 091/172] Restructure common_lang --- orif/common/Language/fr/common_lang.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 2c98c70d..1450956d 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -8,12 +8,6 @@ */ return[ - -//TEXTS - 'all_m' => 'Tous', - 'all_f' => 'Toutes', - 'reactivate' => 'Réactiver', - // Application name 'app_title' => 'Titre de l\'application', @@ -37,8 +31,12 @@ 'btn_show_disabled' => 'Afficher les éléments désactivés', 'btn_delete' => 'Supprimer', 'btn_reactivate' => 'Réactiver', - 'btn_search' => 'Rechercher', + 'btn_search' => 'Rechercher', + // Other common texts 'yes' => 'Oui', - 'no' => 'Non' + 'no' => 'Non', + 'all_m' => 'Tous', + 'all_f' => 'Toutes', + 'reactivate' => 'Réactiver' ]; \ No newline at end of file From abd43dbbf5b30c4a2d70e039607e4883d478df8a Mon Sep 17 00:00:00 2001 From: HeMa Date: Fri, 9 Jul 2021 10:48:29 +0200 Subject: [PATCH 092/172] roleback get_access_level --- orif/user/Controllers/Auth.php | 2 +- orif/user/Models/User_model.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/orif/user/Controllers/Auth.php b/orif/user/Controllers/Auth.php index 4ce48df2..fc92eb1f 100644 --- a/orif/user/Controllers/Auth.php +++ b/orif/user/Controllers/Auth.php @@ -92,7 +92,7 @@ public function login() // Set session variables $_SESSION['user_id'] = (int)$user->id; $_SESSION['username'] = (string)$user->username; - $_SESSION['user_access'] = (int)User_model::get_access_level($user->fk_user_type); + $_SESSION['user_access'] = (int)User_model::get_access_level($user->id); $_SESSION['logged_in'] = (bool)true; // Send the user to the redirection URL diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index 0742d72a..a6cc1381 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -71,8 +71,8 @@ public static function check_password_email($email,$password){ * @param $fkUserTypeId * @return mixed */ - public static function get_access_level($fkUserTypeId){ - return User_type_model::getInstance()->getWhere(['id'=>$fkUserTypeId])->getRow()->access_level; + public static function get_access_level($userID){ + return User_type_model::getInstance()->getWhere(['id'=>User_model::getInstance()->find($userID)['fk_user_type']])->getRow()->access_level; } From ecc45ae0711e4ea24d3f57e827c440fe4be28b59 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Tue, 13 Jul 2021 16:13:14 +0200 Subject: [PATCH 093/172] Update common module to version 4.1 --- orif/common/Language/fr/common_lang.php | 8 ++++---- orif/common/Views/header.php | 3 ++- orif/common/Views/items_list.php | 16 +++++----------- orif/common/readme.md | 9 +++++++-- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 1450956d..926abc3f 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -28,15 +28,15 @@ 'btn_details' => 'Détails', 'btn_edit' => 'Modifier', 'btn_disable' => 'Désactiver', + 'btn_reactivate' => 'Réactiver', 'btn_show_disabled' => 'Afficher les éléments désactivés', 'btn_delete' => 'Supprimer', - 'btn_reactivate' => 'Réactiver', 'btn_search' => 'Rechercher', // Other common texts 'yes' => 'Oui', 'no' => 'Non', - 'all_m' => 'Tous', - 'all_f' => 'Toutes', - 'reactivate' => 'Réactiver' + 'all_m' => 'Tous', + 'all_f' => 'Toutes', + 'reactivate' => 'Réactiver' ]; \ No newline at end of file diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index 808e4440..c9418c0a 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -25,11 +25,12 @@ " /> " /> - " /> + + diff --git a/orif/common/Views/items_list.php b/orif/common/Views/items_list.php index e97ef258..62db2594 100644 --- a/orif/common/Views/items_list.php +++ b/orif/common/Views/items_list.php @@ -104,27 +104,21 @@ - - - - + + - - - + + - - - - + diff --git a/orif/common/readme.md b/orif/common/readme.md index 77eb5970..4fab40aa 100644 --- a/orif/common/readme.md +++ b/orif/common/readme.md @@ -5,9 +5,14 @@ This module provides common header, footer and login bar for every application's It also provides a generic "items_list" view which can display any set of items in a table format, optionally with CRUD links. -## Version 4.0 ## +## Version 4.1 ## -Adapted for CodeIgniter 4.x +**4.1** +- Add CDN for Bootstrap icons in header view +- Add new common strings in language file + +**4.0** +- Adapted for CodeIgniter 4.x ## Usage of the generic "items_list" view ## From f28fc074868e05b82be28cbba09d6271889fbb2c Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:42:36 +0200 Subject: [PATCH 094/172] added email to form and db --- orif/user/Controllers/Admin.php | 7 +++++-- orif/user/Models/User_model.php | 2 +- orif/user/Views/admin/form_user.php | 8 +++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/orif/user/Controllers/Admin.php b/orif/user/Controllers/Admin.php index c4bb7231..c07eedca 100644 --- a/orif/user/Controllers/Admin.php +++ b/orif/user/Controllers/Admin.php @@ -96,7 +96,9 @@ public function save_user($user_id = 0) $validationErrors=['id'=>['cb_not_null_user' => lang('user_lang.msg_err_user_not_exist')], 'user_name'=>['cb_unique_user' => lang('user_lang.msg_err_user_not_unique')], 'user_usertype'=>['cb_not_null_user_type' => lang('user_lang.msg_err_user_type_not_exist')]]; - + if ($this->request->getPost('user_email')) { + $validationRules['user_email']=['label'=>lang('user_lang.field_email'),'rules'=>'required|valid_email|max_length['.config("\User\Config\UserConfig")->email_max_length.']']; + } if ($user_id==0){ $validationRules['user_password']=['label'=>lang('user_lang.field_password'),'rules'=>'required|trim|'. 'min_length['.config("\User\Config\UserConfig")->password_min_length.']|'. @@ -109,7 +111,8 @@ public function save_user($user_id = 0) if ($this->validation->withRequest($this->request)->run()) { $user = array( 'fk_user_type' => intval($this->request->getPost('user_usertype')), - 'username' => $this->request->getPost('user_name') + 'username' => $this->request->getPost('user_name'), + 'email' => $this->request->getPost('user_email'), ); if ($user_id > 0) { User_model::getInstance()->update($user_id, $user); diff --git a/orif/user/Models/User_model.php b/orif/user/Models/User_model.php index a6cc1381..e12d3bfd 100644 --- a/orif/user/Models/User_model.php +++ b/orif/user/Models/User_model.php @@ -14,7 +14,7 @@ class User_model extends \CodeIgniter\Model{ private static $userModel; protected $table='user'; protected $primaryKey='id'; - protected $allowedFields=['archive','date_creation','username','password','fk_user_type']; + protected $allowedFields=['archive','date_creation','username','password','fk_user_type','email']; protected $useSoftDeletes=true; protected $deletedField="archive"; diff --git a/orif/user/Views/admin/form_user.php b/orif/user/Views/admin/form_user.php index 237a35fe..2e9776e2 100644 --- a/orif/user/Views/admin/form_user.php +++ b/orif/user/Views/admin/form_user.php @@ -51,7 +51,13 @@ 'class' => 'form-control', 'id' => 'user_name' ]); ?>
    - +
    + 'form-label']); ?> + config('\User\Config\UserConfig')->email_max_length, + 'class' => 'form-control', 'id' => 'user_email' + ]); ?> +
    'form-label']); ?> From 2c09b603a9fcea6e67027ba913359b5cb0a7bbc3 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:47:21 +0200 Subject: [PATCH 095/172] corrected for multiple usages --- orif/user/Database/Migrations/2021-03-19-090829_add_user.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php index 1e35a120..462c1cbe 100644 --- a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php +++ b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php @@ -49,7 +49,8 @@ public function up() $seeder=\Config\Database::seeder(); //for plafor module //$seeder->call('\User\Database\Seeds\AddUserDatas'); - $seeder->call('\Plafor\Database\Seeds\addUserDatas'); + // only for application + //$seeder->call('\Plafor\Database\Seeds\addUserDatas'); } /** From 96d1f493d19cdf9f240036219def10fa5f639d37 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:49:22 +0200 Subject: [PATCH 096/172] remove id from allowedfields --- orif/plafor/Models/coursePlanModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index 119fa0de..eac9889d 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -7,7 +7,7 @@ class CoursePlanModel extends Model{ private static $coursePlanModel=null; protected $table='course_plan'; protected $primaryKey='id'; - protected $allowedFields=['id', 'formation_number','official_name','date_begin', 'archive']; + protected $allowedFields=['formation_number','official_name','date_begin', 'archive']; protected $useSoftDeletes=true; protected $deletedField='archive'; private $userCourseModel=null; From 17d41e169c33cfc77d8f030a9a1f44e6558b85da Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:51:53 +0200 Subject: [PATCH 097/172] removed with archived --- orif/plafor/Models/competenceDomainModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 8f03a51f..9960c464 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -28,9 +28,9 @@ public static function getInstance(){ * @param $fkCoursePlanId * @return array|null */ - public static function getCoursePlan($fkCoursePlanId,$withArchived=false){ + public static function getCoursePlan($fkCoursePlanId){ - return CoursePlanModel::getInstance()->withDeleted($withArchived)->find($fkCoursePlanId); + return CoursePlanModel::getInstance()->withDeleted(true)->find($fkCoursePlanId); } From 308e7ea24360906f4c518e52b9a8f2a1f97d9c4b Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:53:50 +0200 Subject: [PATCH 098/172] added witharchived option --- orif/plafor/Models/competenceDomainModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 9960c464..485ad8a8 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -38,8 +38,8 @@ public static function getCoursePlan($fkCoursePlanId){ * @param $competenceDomainId * @return array|null */ - public static function getOperationalCompetences($competenceDomainId){ - return OperationalCompetenceModel::getInstance()->where('fk_competence_domain',$competenceDomainId)->findAll(); + public static function getOperationalCompetences($competenceDomainId, $withArchived=false){ + return OperationalCompetenceModel::getInstance()->withDeleted($withArchived)->where('fk_competence_domain',$competenceDomainId)->findAll(); } public static function getCompetenceDomains($with_archived = false, $course_plan_id = 0) { From 81f7d328500d375d7e5d03d193cca8db96cc1ccf Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 10 Aug 2021 08:55:28 +0200 Subject: [PATCH 099/172] removed witharchived option --- orif/plafor/Models/objectiveModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 8bde8dbd..655cb491 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -30,8 +30,8 @@ public static function getInstance(){ * @param $fkOperationalCompetenceId * @return array|object|null */ - public static function getOperationalCompetence($fkOperationalCompetenceId,$withDeleted=false){ - return OperationalCompetenceModel::getInstance()->withDeleted($withDeleted)->find($fkOperationalCompetenceId); + public static function getOperationalCompetence($fkOperationalCompetenceId){ + return OperationalCompetenceModel::getInstance()->withDeleted(true)->find($fkOperationalCompetenceId); } /** From 9a95e496de68a29bc36f5f012a2aaf3679036213 Mon Sep 17 00:00:00 2001 From: maximeor <77323615+maximeor@users.noreply.github.com> Date: Thu, 26 Aug 2021 16:12:33 +0200 Subject: [PATCH 100/172] Update admin menu --- app/Controllers/BaseController.php | 16 +++++++---- orif/common/Config/AdminPanelConfig.php | 28 ++++++++++++++++++++ orif/common/Views/adminMenu.php | 20 ++++++++++++++ orif/common/Views/login_bar.php | 2 -- orif/plafor/Controllers/Admin.php | 8 +++--- orif/plafor/Views/competence_domain/list.php | 1 - orif/plafor/Views/templates/admin_menu.php | 12 --------- 7 files changed, 63 insertions(+), 24 deletions(-) create mode 100644 orif/common/Config/AdminPanelConfig.php create mode 100644 orif/common/Views/adminMenu.php diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 7767aa32..4620ea54 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -4,7 +4,7 @@ * * @author Orif (ViDi) * @link https://github.com/OrifInformatique - * @copyright Copyright (c), Orif (https://www.orif.ch) + * @copyright Copyright (c), Orif (https://www.orif.ch) */ namespace App\Controllers; @@ -20,7 +20,7 @@ * class Home extends BaseController * * For security be sure to declare any new methods as protected or private. - * + * * @package CodeIgniter */ @@ -34,15 +34,14 @@ class BaseController extends Controller * @var array */ protected $helpers = []; - protected Session $session; /** * Limit the accessibility to the entire controller. * Modify this value in constructor of child controllers, before calling parent::initController. - * + * * '*' accessible for all users * '@' accessible for logged in users - * + * * Other possible values are defined in User\Config\UserConfig * For example : $access_level = config('User\Config\UserConfig')->access_lvl_admin */ @@ -133,6 +132,13 @@ public function display_view($view_parts, $data = NULL) // Display common headers echo view('Common\header', $data); echo view('Common\login_bar'); + foreach (config('Common\Config\AdminPanelConfig')->views as $view){ + if (strstr(current_url(),$view['pageLink'])) { + $data['title']=lang($view['title']); + echo view('\Common\Adminmenu'); + + } + } if (is_array($view_parts)) { // Display multiple view parts diff --git a/orif/common/Config/AdminPanelConfig.php b/orif/common/Config/AdminPanelConfig.php new file mode 100644 index 00000000..5cdd1bd1 --- /dev/null +++ b/orif/common/Config/AdminPanelConfig.php @@ -0,0 +1,28 @@ +'user_lang.title_user_list','title'=>'user_lang.title_user_list','pageLink'=>'user/admin/list_user'], + ['label'=>'user_lang.admin_course_plans','title'=>'user_lang.admin_course_plans','pageLink'=>'plafor/admin/list_course_plan'], + ['label'=>'user_lang.admin_competence_domains','title'=>'user_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], + ['label'=>'user_lang.admin_operational_competences','title'=>'user_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], + ['label'=>'user_lang.admin_objectives','title'=>'user_lang.admin_objectives','pageLink'=>'plafor/admin/list_objective'], + + ]; + +} \ No newline at end of file diff --git a/orif/common/Views/adminMenu.php b/orif/common/Views/adminMenu.php new file mode 100644 index 00000000..d5659bb7 --- /dev/null +++ b/orif/common/Views/adminMenu.php @@ -0,0 +1,20 @@ +
    +
    +
    + views as $view){?> + + + +
    +
    +
    + \ No newline at end of file diff --git a/orif/common/Views/login_bar.php b/orif/common/Views/login_bar.php index ddb91c46..0e587cb8 100644 --- a/orif/common/Views/login_bar.php +++ b/orif/common/Views/login_bar.php @@ -12,8 +12,6 @@ */ ?> - -
    diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 91973185..0b08a717 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -61,7 +61,7 @@ public function list_course_plan($id_apprentice = null, bool $with_archived=fals $output[] = ['course_plans' => $course_plans]; } - $this->display_view(['Plafor\templates/admin_menu','Plafor\course_plan\list'], $output); + $this->display_view(['Plafor\course_plan\list'], $output); } /** * Adds or modify a course plan @@ -213,7 +213,7 @@ public function list_competence_domain($id_course_plan = null , $with_archived = 'id_course_plan' => $id_course_plan, 'with_archived' => $with_archived ); - return $this->display_view(['Plafor\templates/admin_Menu','\Plafor\competence_domain\list'], $output); + return $this->display_view(['\Plafor\competence_domain\list'], $output); } /** * Displays the list of course plans @@ -240,7 +240,7 @@ public function list_operational_competence($id_competence_domain = null, $with_ $output['id_competence_domain'] = $id_competence_domain; } - $this->display_view(['\Plafor\templates\admin_menu','\Plafor/operational_competence/list'], $output); + $this->display_view(['\Plafor/operational_competence/list'], $output); exit(); } /** @@ -549,7 +549,7 @@ public function list_objective($id_operational_competence = 0,bool $with_archive $output['operational_competence_id'] = $id_operational_competence; } - $this->display_view(['Plafor\templates/admin_menu','Plafor\objective/list'], $output); + $this->display_view(['Plafor\objective/list'], $output); } /** * Adds or modify a course plan diff --git a/orif/plafor/Views/competence_domain/list.php b/orif/plafor/Views/competence_domain/list.php index f187dfa7..120faff3 100644 --- a/orif/plafor/Views/competence_domain/list.php +++ b/orif/plafor/Views/competence_domain/list.php @@ -9,7 +9,6 @@ */ ?>
    -

    diff --git a/orif/plafor/Views/templates/admin_menu.php b/orif/plafor/Views/templates/admin_menu.php index 182f6e2e..3725c555 100644 --- a/orif/plafor/Views/templates/admin_menu.php +++ b/orif/plafor/Views/templates/admin_menu.php @@ -4,18 +4,6 @@ - - - -
    From d9c4b720e35c7759808f74b0dce18e8155d3dcb3 Mon Sep 17 00:00:00 2001 From: maximeor <77323615+maximeor@users.noreply.github.com> Date: Thu, 26 Aug 2021 16:21:10 +0200 Subject: [PATCH 101/172] Move validation rules in models and update views to fix some errors --- orif/plafor/Controllers/Admin.php | 178 ++++++--------- orif/plafor/Controllers/Apprentice.php | 210 ++++++++---------- orif/plafor/Language/fr/plafor_lang.php | 1 + orif/plafor/Models/acquisitionStatusModel.php | 10 + orif/plafor/Models/commentModel.php | 12 + orif/plafor/Models/competenceDomainModel.php | 17 ++ orif/plafor/Models/coursePlanModel.php | 27 +++ orif/plafor/Models/objectiveModel.php | 21 ++ .../Models/operationalCompetenceModel.php | 28 +++ orif/plafor/Models/trainerApprenticeModel.php | 11 + orif/plafor/Models/userCourseModel.php | 19 ++ orif/plafor/Validation/PlaforRules.php | 43 ++-- orif/plafor/Views/acquisition_status/save.php | 11 +- orif/plafor/Views/apprentice/link.php | 13 +- orif/plafor/Views/comment/save.php | 11 +- orif/plafor/Views/competence_domain/save.php | 9 +- orif/plafor/Views/course_plan/save.php | 33 +-- orif/plafor/Views/objective/save.php | 11 +- orif/plafor/Views/objective/view.php | 6 + .../Views/operational_competence/save.php | 10 +- .../Views/operational_competence/view.php | 8 + orif/plafor/Views/user_course/save.php | 11 +- orif/user/Language/fr/user_lang.php | 1 + 23 files changed, 390 insertions(+), 311 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index 0b08a717..50065a7a 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -74,33 +74,20 @@ public function save_course_plan($course_plan_id = 0) $lastDatas = array(); if (count($_POST) > 0) { $course_plan_id = empty($this->request->getPost('coursePlanId'))?0:$this->request->getPost('coursePlanId'); - $rules = array( - 'formation_number'=>[ - 'label' => 'user_lang.field_course_plan_formation_number', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric'.($course_plan_id==0?('|checkFormPlanNumber'):("")), - ], - 'official_name'=>[ - 'label' => 'user_lang.field_course_plan_official_name', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH.']', - ],'date_begin'=>[ - 'label' => 'user_lang.field_course_plan_date_begin', - 'rules' => 'required', - ] + $course_plan = array( + 'formation_number' => $this->request->getPost('formation_number'), + 'official_name' => ' '.$this->request->getPost('official_name'), + 'date_begin' => $this->request->getPost('date_begin'), + 'id' => $this->request->getPost('id'), ); - $this->validation->setRules($rules); - if ($this->validation->withRequest($this->request)->run()) { - $course_plan = array( - 'formation_number' => $this->request->getPost('formation_number'), - 'official_name' => ' '.$this->request->getPost('official_name'), - 'date_begin' => $this->request->getPost('date_begin') - ); - if ($course_plan_id > 0) { - CoursePlanModel::getInstance()->update($course_plan_id, $course_plan); - } else { - CoursePlanModel::getInstance()->insert($course_plan); - } - return redirect()->to(base_url('/plafor/admin/list_course_plan')); + if ($course_plan_id > 0) { + CoursePlanModel::getInstance()->update($course_plan_id, $course_plan); + } else { + CoursePlanModel::getInstance()->insert($course_plan); } + if (CoursePlanModel::getInstance()->errors()==null) { + return redirect()->to(base_url('/plafor/admin/list_course_plan')); + } else {//lastdatas takes the last datas if they arent't valid $lastDatas = array( 'formation_number' => $this->request->getPost('formation_number'), @@ -115,7 +102,8 @@ public function save_course_plan($course_plan_id = 0) $formTitle = $course_plan_id<>0?'update' : 'new'; $output = array( 'title' => (lang('plafor_lang.title_course_plan_'.$formTitle)), - 'course_plan' => $lastDatas!=null?$lastDatas:CoursePlanModel::getInstance()->withDeleted()->find($course_plan_id) + 'course_plan' => $lastDatas!=null?$lastDatas:CoursePlanModel::getInstance()->withDeleted()->find($course_plan_id), + 'errors'=>CoursePlanModel::getInstance()->errors(), ); $this->display_view('\Plafor\course_plan\save', $output); @@ -253,28 +241,19 @@ public function save_competence_domain($competence_domain_id = 0, $course_plan_i { if (count($_POST) > 0) { $competence_domain_id = $this->request->getPost('id'); - $rules = array( - 'symbol'=>[ - 'label' => 'user_lang.field_competence_domain_symbol', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']|checkSameCompetenceDomain[symbol]' - ], - 'name'=>[ - 'label' => 'user_lang.field_competence_domain_name', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->COMPETENCE_DOMAIN_NAME_MAX_LENGTH.']' - ], + $competence_domain = array( + 'symbol' => $this->request->getPost('symbol'), + 'name' => $this->request->getPost('name'), + 'fk_course_plan' => $this->request->getPost('course_plan'), + 'id' =>$competence_domain_id ); - $this->validation->setRules($rules); - if ($this->validation->withRequest($this->request)->run()) { - $competence_domain = array( - 'symbol' => $this->request->getPost('symbol'), - 'name' => $this->request->getPost('name'), - 'fk_course_plan' => $this->request->getPost('course_plan') - ); - if ($competence_domain_id > 0) { - CompetenceDomainModel::getInstance()->update($competence_domain_id, $competence_domain); - } else { - CompetenceDomainModel::getInstance()->insert($competence_domain); - } + if ($competence_domain_id > 0) { + CompetenceDomainModel::getInstance()->update($competence_domain_id, $competence_domain); + } else { + CompetenceDomainModel::getInstance()->insert($competence_domain); + } + //if there aren't errors go here + if (CompetenceDomainModel::getInstance()->errors()==null) { return redirect()->to(base_url('plafor/admin/list_competence_domain/'.($this->request->getPost('course_plan')==null?'':$this->request->getPost('course_plan')))); } } @@ -285,7 +264,8 @@ public function save_competence_domain($competence_domain_id = 0, $course_plan_i 'title' => lang('plafor_lang.title_competence_domain_'.((bool)$competence_domain_id ? 'update' : 'new')), 'competence_domain' => CompetenceDomainModel::getInstance()->find($competence_domain_id), 'course_plans' => $course_plans, - 'fk_course_plan_id' => $course_plan_id + 'fk_course_plan_id' => $course_plan_id, + 'errors'=>CompetenceDomainModel::getInstance()->errors(), ); $this->display_view('\Plafor\competence_domain/save', $output); @@ -349,46 +329,29 @@ public function save_operational_competence($operational_competence_id = 0, $com { if (count($_POST) > 0) { $operational_competence_id = $this->request->getPost('id'); - $rules = array( - 'symbol'=>[ - 'label' => 'user_lang.field_operational_competence_symbol', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' - ], - 'name'=>[ - 'label' => 'user_lang.field_operational_competence_name', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH.']' - ], - 'methodologic'=>[ - 'label' => 'user_lang.field_operational_methodologic', - 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' - ], - 'social'=>[ - 'label' => 'user_lang.field_operational_social', - 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' - ], - 'personal'=>[ - 'label' => 'user_lang.field_operational_personal', - 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' - ], + + $operational_competence = array( + 'id' => $operational_competence_id!=null?$operational_competence_id:null, + 'symbol' => $this->request->getPost('symbol'), + 'name' => $this->request->getPost('name'), + 'methodologic' => $this->request->getPost('methodologic'), + 'social' => $this->request->getPost('social'), + 'personal' => $this->request->getPost('personal'), + 'fk_competence_domain' => $this->request->getPost('competence_domain') ); - $this->validation->setRules($rules); + if ($operational_competence_id>0){ + //update + OperationalCompetenceModel::getInstance()->update($operational_competence_id, $operational_competence); + } + else{ + //insert + OperationalCompetenceModel::getInstance()->insert($operational_competence); + } - if ($this->validation->withRequest($this->request)->run()) { - $operational_competence = array( - 'symbol' => $this->request->getPost('symbol'), - 'name' => $this->request->getPost('name'), - 'methodologic' => $this->request->getPost('methodologic'), - 'social' => $this->request->getPost('social'), - 'personal' => $this->request->getPost('personal'), - 'fk_competence_domain' => $this->request->getPost('competence_domain') - ); - if ($operational_competence_id > 0) { - OperationalCompetenceModel::getInstance()->update($operational_competence_id, $operational_competence); - } else { - OperationalCompetenceModel::getInstance()->insert($operational_competence); - } + if (OperationalCompetenceModel::getInstance()->errors()==null) { + //when it's ok return redirect()->to(base_url('plafor/admin/list_operational_competence/'.$competence_domain_id)); } } @@ -401,7 +364,8 @@ public function save_operational_competence($operational_competence_id = 0, $com 'title' => lang('plafor_lang.title_operational_competence_'.((bool)$operational_competence_id ? 'update' : 'new')), 'operational_competence' => OperationalCompetenceModel::getInstance()->withDeleted()->find($operational_competence_id), 'competence_domains' => $competenceDomains, - 'competence_domain_id' => $competence_domain_id + 'competence_domain_id' => $competence_domain_id, + 'errors' => OperationalCompetenceModel::getInstance()->errors(), ); $this->display_view('\Plafor\operational_competence/save', $output); @@ -561,34 +525,21 @@ public function save_objective($objective_id = 0, $operational_competence_id = 0 { if (count($_POST) > 0) { $objective_id = $this->request->getPost('id'); - $rules = array( - 'symbol'=>[ - 'label' => 'user_lang.field_objective_symbol', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']', - ], - 'taxonomy'=>[ - 'label' => 'user_lang.field_objective_taxonomy', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->TAXONOMY_MAX_VALUE.']', - ], - - 'name'=>[ - 'label' => 'user_lang.field_objective_name', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OBJECTIVE_NAME_MAX_LENGTH.']', - ] + $objective = array( + 'symbol' => $this->request->getPost('symbol'), + 'taxonomy' => $this->request->getPost('taxonomy'), + 'name' => $this->request->getPost('name'), + 'fk_operational_competence' => $this->request->getPost('operational_competence') ); - $this->validation->setRules($rules); - if ($this->validation->withRequest($this->request)->run()) { - $objective = array( - 'symbol' => $this->request->getPost('symbol'), - 'taxonomy' => $this->request->getPost('taxonomy'), - 'name' => $this->request->getPost('name'), - 'fk_operational_competence' => $this->request->getPost('operational_competence') - ); - if ($objective_id > 0) { - ObjectiveModel::getInstance()->update($objective_id, $objective); - } else { - ObjectiveModel::getInstance()->insert($objective); - } + if ($objective_id > 0) { + //update + ObjectiveModel::getInstance()->update($objective_id, $objective); + } else { + //insert + ObjectiveModel::getInstance()->insert($objective); + } + if (ObjectiveModel::getInstance()->errors()==null) { + //if ok return redirect()->to(base_url('plafor/admin/list_objective/'.($operational_competence_id!=0?$operational_competence_id:''))); } } @@ -600,7 +551,8 @@ public function save_objective($objective_id = 0, $operational_competence_id = 0 'title' => lang('plafor_lang.title_objective_'.((bool)$objective_id ? 'update' : 'new')), 'objective' => ObjectiveModel::getInstance()->withDeleted()->find($objective_id), 'operational_competences' => $operationalCompetences, - 'operational_competence_id' => $operational_competence_id + 'operational_competence_id' => $operational_competence_id, + 'errors' => ObjectiveModel::getInstance()->errors(), ); return $this->display_view('\Plafor\objective/save', $output); diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index cec299d4..1d029fca 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -6,6 +6,7 @@ use CodeIgniter\Config\Services; use CodeIgniter\Validation\Validation; +use Exception; use Plafor\Models\AcquisitionLevelModel; use Plafor\Models\AcquisitionStatusModel; use Plafor\Models\CommentModel; @@ -171,71 +172,51 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ } if(count($_POST) > 0){ - $rules = array( - 'course_plan'=>[ - 'label' => 'user_lang.course_plan', - 'rules' => 'required|numeric', - ], - 'status'=>[ - 'label' => 'user_lang.status', - 'rules' => 'required|numeric', - ], - 'date_begin'=>[ - 'label' => 'user_lang.field_user_course_date_begin', - 'rules' => 'required', - ] - /* - array( - 'field' => 'date_end', - 'label' => 'lang:field_user_course_date_end', - 'rules' => 'required', - ), - */ + $fk_course_plan = $this->request->getPost('course_plan'); + $user_course = array( + 'fk_user' => $id_apprentice, + 'fk_course_plan' => $fk_course_plan, + 'fk_status' => $this->request->getPost('status'), + 'date_begin' => $this->request->getPost('date_begin'), + 'date_end' => $this->request->getPost('date_end'), ); - $this->validation->setRules($rules); - - if($this->validation->withRequest($this->request)->run()){ - $fk_course_plan = $this->request->getPost('course_plan'); - $user_course = array( - 'fk_user' => $id_apprentice, - 'fk_course_plan' => $fk_course_plan, - 'fk_status' => $this->request->getPost('status'), - 'date_begin' => $this->request->getPost('date_begin'), - 'date_end' => $this->request->getPost('date_end'), - ); - - if($id_user_course > 0){ - echo UserCourseModel::getInstance()->update($id_user_course, $user_course); - }else if(UserCourseModel::getInstance()->where('fk_user', $id_apprentice)->where('fk_course_plan', $fk_course_plan)->first()==null) { - $id_user_course = UserCourseModel::getInstance()->insert($user_course); - - $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); - $competenceDomainIds=[]; - foreach (CoursePlanModel::getCompetenceDomains($course_plan['id']) as $competence_domain){ - $competenceDomainIds[] = $competence_domain['id']; - } + if($id_user_course > 0){ + //update + UserCourseModel::getInstance()->update($id_user_course, $user_course); + }else if(UserCourseModel::getInstance()->where('fk_user', $id_apprentice)->where('fk_course_plan', $fk_course_plan)->first()==null) { + //insert + $id_user_course = UserCourseModel::getInstance()->insert($user_course); + + $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); + $competenceDomainIds=[]; + + foreach (CoursePlanModel::getCompetenceDomains($course_plan['id']) as $competence_domain){ + $competenceDomainIds[] = $competence_domain['id']; + } - $operational_competences=[]; - // si il n'y a pas de compétence operationnelles associées - try { - $operational_competences = OperationalCompetenceModel::getInstance()->withDeleted()->whereIn('fk_competence_domain', $competenceDomainIds)->findAll(); - }catch (\Exception $e){}; - $objectiveIds = array(); - foreach ($operational_competences as $operational_competence){ - foreach (OperationalCompetenceModel::getObjectives($operational_competence['id']) as $objective){ - $objectiveIds[] = $objective['id']; - } - } - foreach ($objectiveIds as $objectiveId){ - $acquisition_status = array( - 'fk_objective' => $objectiveId, - 'fk_user_course' => $id_user_course, - 'fk_acquisition_level' => 1 - ); - - AcquisitionStatusModel::getInstance()->insert($acquisition_status); + $operational_competences=[]; + // si il n'y a pas de compétence operationnelles associées + try { + $operational_competences = OperationalCompetenceModel::getInstance()->withDeleted()->whereIn('fk_competence_domain', $competenceDomainIds)->findAll(); + }catch (\Exception $e){}; + $objectiveIds = array(); + foreach ($operational_competences as $operational_competence){ + foreach (OperationalCompetenceModel::getObjectives($operational_competence['id']) as $objective){ + $objectiveIds[] = $objective['id']; } } + foreach ($objectiveIds as $objectiveId){ + $acquisition_status = array( + 'fk_objective' => $objectiveId, + 'fk_user_course' => $id_user_course, + 'fk_acquisition_level' => 1 + ); + + AcquisitionStatusModel::getInstance()->insert($acquisition_status); + } + } + if(UserCourseModel::getInstance()->errors()==null){ + //if ok return redirect()->to(base_url('plafor/apprentice/view_apprentice/'.$id_apprentice)); exit(); } @@ -252,7 +233,8 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ 'course_plans' => $course_plans, 'user_course' => $user_course, 'status' => $status, - 'apprentice' => $apprentice + 'apprentice' => $apprentice, + 'errors' => UserCourseModel::getInstance()->errors() ); return $this->display_view('Plafor\user_course/save',$output); @@ -278,36 +260,27 @@ public function save_apprentice_link($id_apprentice = null, $id_link = null){ } if(count($_POST) > 0){ - $rules = array( - 'trainer'=>[ - 'label' => 'user_lang.field_trainer_link', - 'rules' => 'required|numeric' - ] - + $apprentice_link = array( + 'fk_trainer' => $this->request->getPost('trainer'), + 'fk_apprentice' => $this->request->getPost('apprentice'), ); + $old_link = TrainerApprenticeModel::getInstance()->where('fk_trainer',$apprentice_link['fk_trainer'])->where('fk_apprentice',$apprentice_link['fk_apprentice'])->first(); + if ($id_link != null) { + if (!is_null($old_link)) { + // Delete the old link instead of deleting the one being changed + // It's easier that way + TrainerApprenticeModel::getInstance()->delete($id_link); + } else { + TrainerApprenticeModel::getInstance()->update($id_link,$apprentice_link); + } + } elseif (is_null($old_link)) { + // Don't insert a new link that is the same as an old one + TrainerApprenticeModel::getInstance()->insert($apprentice_link); + } - $this->validation->setRules($rules); - - if($this->validation->withRequest($this->request)->run()){ - $apprentice_link = array( - 'fk_trainer' => $this->request->getPost('trainer'), - 'fk_apprentice' => $this->request->getPost('apprentice'), - ); + if(TrainerApprenticeModel::getInstance()->errors()==null){ + //ok // This is used to prevent an apprentice from being linked to the same person twice - $old_link = TrainerApprenticeModel::getInstance()->where('fk_trainer',$apprentice_link['fk_trainer'])->where('fk_apprentice',$apprentice_link['fk_apprentice'])->first(); - - if ($id_link != null) { - if (!is_null($old_link)) { - // Delete the old link instead of deleting the one being changed - // It's easier that way - TrainerApprenticeModel::getInstance()->delete($id_link); - } else { - TrainerApprenticeModel::getInstance()->update($id_link,$apprentice_link); - } - } elseif (is_null($old_link)) { - // Don't insert a new link that is the same as an old one - TrainerApprenticeModel::getInstance()->insert($apprentice_link); - } return redirect()->to(base_url("plafor/apprentice/view_apprentice/{$id_apprentice}")); } } @@ -330,6 +303,7 @@ public function save_apprentice_link($id_apprentice = null, $id_link = null){ 'apprentice' => $apprentice, 'trainers' => $trainers, 'link' => $link, + 'errors'=>TrainerApprenticeModel::getInstance()->errors() ); $this->display_view('Plafor\apprentice/link',$output); @@ -388,18 +362,15 @@ public function save_acquisition_status($acquisition_status_id = 0) { // Check if data was sent if (!empty($_POST)) { $acquisitionLevel = $this->request->getPost('field_acquisition_level'); + $acquisitionStatus = [ + 'fk_acquisition_level' => $acquisitionLevel + ]; + AcquisitionStatusModel::getInstance()->update($acquisition_status_id, $acquisitionStatus); - $this->validation->setRules(['field_acquisition_level'=>[ - 'label'=>'user_lang.field_acquisition_level', - 'rules'=>'required|in_list['.implode(',', array_keys($acquisitionLevels)).']' - ]]); - if ($this->validation->withRequest($this->request)->run()) { - $acquisitionStatus = [ - 'fk_acquisition_level' => $acquisitionLevel - ]; - AcquisitionStatusModel::getInstance()->update($acquisition_status_id, $acquisitionStatus); + if (AcquisitionStatusModel::getInstance()->errors()==null) { + //if ok return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status_id)); } } @@ -408,7 +379,8 @@ public function save_acquisition_status($acquisition_status_id = 0) { 'title'=>lang('plafor_lang.title_acquisition_status_save'), 'acquisition_levels' => $acquisitionLevels, 'acquisition_level' => $acquisitionStatus['fk_acquisition_level'], - 'id' => $acquisition_status_id + 'id' => $acquisition_status_id, + 'errors'=> AcquisitionStatusModel::getInstance()->errors() ]; return $this->display_view('Plafor\acquisition_status/save', $output); @@ -421,25 +393,20 @@ public function add_comment($acquisition_status_id = null, $comment_id = null){ } if (count($_POST) > 0) { - $rules = array( - 'comment'=>[ - 'label' => 'user_lang.field_comment', - 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']', - ] + $comment = array( + 'fk_trainer' => $_SESSION['user_id'], + 'fk_acquisition_status' => $acquisition_status_id, + 'comment' => $this->request->getPost('comment'), + 'date_creation' => date('Y-m-d H:i:s'), ); - $this->validation->setRules($rules); - if ($this->validation->withRequest($this->request)->run()) { - $comment = array( - 'fk_trainer' => $_SESSION['user_id'], - 'fk_acquisition_status' => $acquisition_status_id, - 'comment' => $this->request->getPost('comment'), - 'date_creation' => date('Y-m-d H:i:s'), - ); - if($comment_id == null) + if($comment_id == null) CommentModel::getInstance()->insert($comment); - else + else CommentModel::getInstance()->update($comment_id, $comment); + if (CommentModel::getInstance()->errors()==null) { + //if ok + return redirect()->to(base_url('plafor/apprentice/view_acquisition_status/'.$acquisition_status['id'])); } @@ -451,7 +418,8 @@ public function add_comment($acquisition_status_id = null, $comment_id = null){ 'title'=>lang('plafor_lang.title_comment_save'), 'acquisition_status' => $acquisition_status, 'comment_id' => $comment_id, - 'commentValue' => ($comment['comment']??'') + 'commentValue' => ($comment['comment']??''), + 'errors' => CommentModel::getInstance()->errors() ); return $this->display_view('\Plafor\comment/save',$output); @@ -475,8 +443,14 @@ public function view_operational_competence($operational_competence_id = null) return redirect()->to(base_url('plafor/admin/list_operational_competence')); } - $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); - $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); + $competence_domain=null; + $course_plan=null; + try { + $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); + $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); + }catch (Exception $exception){ + + } $objectives=OperationalCompetenceModel::getObjectives($operational_competence['id']); $output = array( 'title'=>lang('plafor_lang.title_view_operational_competence'), @@ -505,6 +479,8 @@ public function view_objective($objective_id = null) $operational_competence = ObjectiveModel::getOperationalCompetence($objective['fk_operational_competence'],true); $competence_domain = OperationalCompetenceModel::getCompetenceDomain($operational_competence['fk_competence_domain']); + $course_plan=null; + if (isset($competence_domain)) $course_plan = CompetenceDomainModel::getCoursePlan($competence_domain['fk_course_plan']); $output = array( diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index 7a89eeed..186026b3 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -4,6 +4,7 @@ //Errors 'same_competence_domain' => 'Le domaine de compétences existe déjà', + 'competence_domain_already_associated' => 'Un domaine de compétences portant le même (nom ou symbole) est déjà associé à ce plan de formation', //Usefull Links 'plafor_module' => 'Module Plafor', diff --git a/orif/plafor/Models/acquisitionStatusModel.php b/orif/plafor/Models/acquisitionStatusModel.php index 6087887b..9477be50 100644 --- a/orif/plafor/Models/acquisitionStatusModel.php +++ b/orif/plafor/Models/acquisitionStatusModel.php @@ -13,6 +13,16 @@ class AcquisitionStatusModel extends Model{ private $objectiveModel=null; private $userCourseModel=null; private $acquisitionLevelModel=null; + protected $validationRules; + + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules= ['fk_acquisition_level'=>[ + 'label'=>'user_lang.field_acquisition_level', + 'rules'=>'required|in_list['.implode(',', AcquisitionLevelModel::getInstance()->findColumn('id')).']' + ]]; + parent::__construct($db, $validation); + } /** * @return AcquisitionStatusModel diff --git a/orif/plafor/Models/commentModel.php b/orif/plafor/Models/commentModel.php index 0880fd12..c5b4910b 100644 --- a/orif/plafor/Models/commentModel.php +++ b/orif/plafor/Models/commentModel.php @@ -11,8 +11,20 @@ class CommentModel extends Model{ protected $table='comment'; protected $primaryKey='id'; protected $allowedFields=['fk_trainer','fk_acquisition_status','comment','date_creation']; + protected $validationRules; private $acquisitionStatusModel=null; + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules=array( + 'comment'=>[ + 'label' => 'user_lang.field_comment', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']', + ] + ); + parent::__construct($db, $validation); + } + /** * @return CommentModel */ diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 485ad8a8..68340c96 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -14,6 +14,23 @@ class CompetenceDomainModel extends Model{ protected $deletedField='archive'; private $coursePlanModel=null; private $operationalCompetenceModel=null; + protected $validationRules; + + + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules= $rules = array( + 'symbol'=>[ + 'label' => 'user_lang.field_competence_domain_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']|checkCompetenceDomainAssociated[{symbol}]' + ], + 'name'=>[ + 'label' => 'user_lang.field_competence_domain_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->COMPETENCE_DOMAIN_NAME_MAX_LENGTH.']' + ], + ); + parent::__construct($db, $validation); + } /** * @return CompetenceDomainModel diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index eac9889d..9066798f 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -1,7 +1,9 @@ validationRules= + [ + 'formation_number'=>[ + 'label' => 'user_lang.field_course_plan_formation_number', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric'."|checkFormPlanNumber[{id}]", + ], + 'official_name'=>[ + 'label' => 'user_lang.field_course_plan_official_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH.']', + ], + 'date_begin'=>[ + 'label' => 'user_lang.field_course_plan_date_begin', + 'rules' => 'required', + ] + ]; + + parent::__construct($db, $validation); + } /** * @return CoursePlanModel diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 655cb491..10850437 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -16,6 +16,27 @@ class ObjectiveModel extends \CodeIgniter\Model protected $useSoftDeletes=true; protected $deletedField='archive'; private OperationalCompetenceModel $operationalCompetenceModel; + protected $validationRules; + + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules= array( + 'symbol'=>[ + 'label' => 'user_lang.field_objective_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']', + ], + 'taxonomy'=>[ + 'label' => 'user_lang.field_objective_taxonomy', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->TAXONOMY_MAX_VALUE.']', + ], + + 'name'=>[ + 'label' => 'user_lang.field_objective_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OBJECTIVE_NAME_MAX_LENGTH.']', + ] + ); + parent::__construct($db, $validation); + } /** * @return ObjectiveModel diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index c03b7590..cbb01092 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -15,8 +15,36 @@ class OperationalCompetenceModel extends \CodeIgniter\Model protected $allowedFields=['fk_competence_domain','name','symbol','methodologic','social','personal', 'archive']; protected $useSoftDeletes='true'; protected $deletedField='archive'; + protected $validationRules; private CompetenceDomainModel $competenceDomainModel; + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules=$rules = array( + 'symbol'=>[ + 'label' => 'user_lang.field_operational_competence_symbol', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' + ], + 'name'=>[ + 'label' => 'user_lang.field_operational_competence_name', + 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH.']' + ], + 'methodologic'=>[ + 'label' => 'user_lang.field_operational_methodologic', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + 'social'=>[ + 'label' => 'user_lang.field_operational_social', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + 'personal'=>[ + 'label' => 'user_lang.field_operational_personal', + 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' + ], + ); + parent::__construct($db, $validation); + } + /** * @return OperationalCompetenceModel */ diff --git a/orif/plafor/Models/trainerApprenticeModel.php b/orif/plafor/Models/trainerApprenticeModel.php index bc983d5b..8e5d0e88 100644 --- a/orif/plafor/Models/trainerApprenticeModel.php +++ b/orif/plafor/Models/trainerApprenticeModel.php @@ -14,6 +14,17 @@ class TrainerApprenticeModel extends \CodeIgniter\Model protected $table='trainer_apprentice'; protected $primaryKey='id'; protected $allowedFields=['fk_trainer','fk_apprentice']; + protected $validationRules; + + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules=array( + 'trainer'=>[ + 'label' => 'user_lang.field_trainer_link', + 'rules' => 'required|numeric' + ]); + parent::__construct($db, $validation); + } /** * @return TrainerApprenticeModel diff --git a/orif/plafor/Models/userCourseModel.php b/orif/plafor/Models/userCourseModel.php index 349a5a0c..7a5a0c9a 100644 --- a/orif/plafor/Models/userCourseModel.php +++ b/orif/plafor/Models/userCourseModel.php @@ -14,6 +14,25 @@ class UserCourseModel extends \CodeIgniter\Model protected $table='user_course'; protected $primaryKey='id'; protected $allowedFields=['fk_user','fk_course_plan','fk_status','date_begin','date_end']; + protected $validationRules; + public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) + { + $this->validationRules=array( + 'fk_course_plan'=>[ + 'label' => 'user_lang.course_plan', + 'rules' => 'required|numeric', + ], + 'fk_status'=>[ + 'label' => 'user_lang.status', + 'rules' => 'required|numeric', + ], + 'date_begin'=>[ + 'label' => 'user_lang.field_user_course_date_begin', + 'rules' => 'required', + ] + ); + parent::__construct($db, $validation); + } /** * @return UserCourseModel diff --git a/orif/plafor/Validation/PlaforRules.php b/orif/plafor/Validation/PlaforRules.php index 37f73023..d60cc77f 100644 --- a/orif/plafor/Validation/PlaforRules.php +++ b/orif/plafor/Validation/PlaforRules.php @@ -9,7 +9,15 @@ class PlaforRules { - public function checkFormPlanNumber($number, &$error){ + /** + * @param $number mixed value of field to verify + * @param $course_plan_id string|numeric the course_plan id if 0 or str doesnt exists in db + * @param null $datas is set to access error + * @param $error -> string to set the error message + * @return bool + */ + public function checkFormPlanNumber($number, $course_plan_id,$datas,&$error){ + if ($course_plan_id==0) if(count((new CoursePlanModel())->getWhere(['formation_number'=>$number])->getResultArray())>0){ $error= lang('user_lang.form_number_not_unique'); return false; @@ -18,21 +26,30 @@ public function checkFormPlanNumber($number, &$error){ return true; } - public function checkSameCompetenceDomain($text, $fields, $data, &$error) { + public function checkCompetenceDomainAssociated($text, $fields, $data, &$error) + { $symbol = $data['symbol']; $name = $data['name']; - $id = $data['course_plan']; - $competence_domains = CoursePlanModel::getCompetenceDomains($id); - foreach($competence_domains as $competence_domain) { - $arraySymbol = $competence_domain['symbol']; - $arrayName = $competence_domain['name']; - if($arrayName == $name && $arraySymbol == $symbol) { - $error= lang('plafor_lang.same_competence_domain'); - return false; + $course_plan_id = $data['fk_course_plan']; + $competence_domain_id = $data['id']; + $competenceDomain=CompetenceDomainModel::getInstance()->find($competence_domain_id); + //if the record is modified and doesn't exists + if (count(array_diff($data,$competenceDomain==null?[]:$competenceDomain)) > 0 || $competenceDomain==null) { + $competence_domains = CoursePlanModel::getCompetenceDomains($course_plan_id); + foreach ($competence_domains as $competence_domain) { + $arraySymbol = $competence_domain['symbol']; + $arrayName = $competence_domain['name']; + if ($arrayName == $name && $arraySymbol == $symbol) { + $error = lang('plafor_lang.same_competence_domain'); + return false; + } + } - } - - return true; + //The name isn't associated to the same symbole and courses' plan, but the symbol can be already associated + } + + + return true; } } \ No newline at end of file diff --git a/orif/plafor/Views/acquisition_status/save.php b/orif/plafor/Views/acquisition_status/save.php index 3445e28a..ae40ad10 100644 --- a/orif/plafor/Views/acquisition_status/save.php +++ b/orif/plafor/Views/acquisition_status/save.php @@ -1,6 +1,5 @@
    @@ -21,11 +20,11 @@ getErrors())>0?'
    ':null; - foreach ($validation->getErrors() as $error) { - echo $error; - } - echo count($validation->getErrors())>0?'
    ':null; ?> + foreach ($errors!=null?$errors:[] as $error) { ?> +
    + +
    +
    diff --git a/orif/plafor/Views/apprentice/link.php b/orif/plafor/Views/apprentice/link.php index 3617231b..81b45f14 100644 --- a/orif/plafor/Views/apprentice/link.php +++ b/orif/plafor/Views/apprentice/link.php @@ -29,7 +29,6 @@ 'name' => 'apprentice_link_form' ); $formAction = ''; - //exit(); if($link==null) { $formAction = 'plafor/apprentice/save_apprentice_link/'.$apprentice['id']; } else { @@ -42,11 +41,13 @@ getErrors())>0?'
    ':null; - foreach ($validation->getErrors() as $error) - echo $error; - echo count($validation->getErrors())>0?'
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error){ + ?> +
    + + +
    +
    diff --git a/orif/plafor/Views/comment/save.php b/orif/plafor/Views/comment/save.php index b953e318..534a4bff 100644 --- a/orif/plafor/Views/comment/save.php +++ b/orif/plafor/Views/comment/save.php @@ -32,12 +32,11 @@ getErrors())>0?'
    ':null; - foreach ($validation->getErrors() as $error) { - echo $error; - } - echo count($validation->getErrors())>0?'
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error) { ?> +
    + +
    +
    diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php index 253bada8..da83a22b 100644 --- a/orif/plafor/Views/competence_domain/save.php +++ b/orif/plafor/Views/competence_domain/save.php @@ -43,12 +43,9 @@ getErrors())>0?'
      ':null; - foreach ($validation->getErrors() as $error){ - echo "
    • {$error}
    • "; - } - echo count($validation->getErrors())>0?'
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error){ ?> +
    +
    diff --git a/orif/plafor/Views/course_plan/save.php b/orif/plafor/Views/course_plan/save.php index e8a6b22a..64352708 100644 --- a/orif/plafor/Views/course_plan/save.php +++ b/orif/plafor/Views/course_plan/save.php @@ -3,7 +3,6 @@ ?> - getErrors())) : ?> + - +
    + 'form-label']); ?> 'form-label']); ?> @@ -78,27 +78,4 @@
    -
    - - \ No newline at end of file +
    \ No newline at end of file diff --git a/orif/plafor/Views/objective/save.php b/orif/plafor/Views/objective/save.php index c8c6d16b..7a058d02 100644 --- a/orif/plafor/Views/objective/save.php +++ b/orif/plafor/Views/objective/save.php @@ -51,12 +51,11 @@ getErrors())>0?'
    ':null; - foreach ($validation->getErrors() as $error) { - echo $error; - } - echo count($validation->getErrors())>0?'
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error){ ?> +
    + +
    + diff --git a/orif/plafor/Views/objective/view.php b/orif/plafor/Views/objective/view.php index 42319ba3..0ebf2695 100644 --- a/orif/plafor/Views/objective/view.php +++ b/orif/plafor/Views/objective/view.php @@ -3,6 +3,7 @@

    +

    @@ -11,11 +12,13 @@

    +

    +

    @@ -24,11 +27,13 @@

    +

    +

    @@ -49,6 +54,7 @@

    +
    diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index 98907d86..5820a528 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -67,11 +67,11 @@ getErrors())>0?'
      ':null; - foreach ($validation->getErrors() as $error) - echo "
    • {$error}
    • "; - echo count($validation->getErrors())>0?'
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error){ ?> +
    + +
    +
    diff --git a/orif/plafor/Views/operational_competence/view.php b/orif/plafor/Views/operational_competence/view.php index d4caa98c..dc7aa86c 100644 --- a/orif/plafor/Views/operational_competence/view.php +++ b/orif/plafor/Views/operational_competence/view.php @@ -3,6 +3,7 @@

    +

    @@ -11,11 +12,13 @@

    +

    +

    @@ -24,8 +27,10 @@

    +
    +

    @@ -49,6 +54,7 @@

    +
    @@ -64,12 +70,14 @@ +
    diff --git a/orif/plafor/Views/user_course/save.php b/orif/plafor/Views/user_course/save.php index b7918de4..3ede89cd 100644 --- a/orif/plafor/Views/user_course/save.php +++ b/orif/plafor/Views/user_course/save.php @@ -43,11 +43,12 @@ getErrors())>0? '
    ':null; - foreach ($validation->getErrors() as $error) - echo $error; - echo count($validation->getErrors())>0? '
    ':null; - ?> + foreach ($errors!=null?$errors:[] as $error){ + ?> +
    + +
    +
    diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index 87980f8d..22bbd955 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -29,6 +29,7 @@ 'btn_disable_user' => 'Désactiver cet utilisateur', // Fields labels +'field_identity' => 'id', 'field_username' => 'Identifiant', 'field_password' => 'Mot de passe', 'field_email' => 'Addresse e-mail', From aa05104c9cb2bf1c3c14ffc8e60f90a66137e4cd Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 26 Aug 2021 16:26:45 +0200 Subject: [PATCH 102/172] Change application title and page prefix --- orif/common/Language/fr/common_lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index 926abc3f..b260d4ee 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -9,10 +9,10 @@ return[ // Application name - 'app_title' => 'Titre de l\'application', + 'app_title' => 'Gestion des plans de formation', // Page titles - 'page_prefix' => 'Packbase V4', + 'page_prefix' => 'Plafor', // Buttons 'btn_admin' => 'Administration', From 8df17dec53423975046bad8f198f3c8b4b9e3090 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 14 Sep 2021 13:32:34 +0200 Subject: [PATCH 103/172] added UI progress --- orif/common/Views/footer.php | 7 + orif/common/Views/header.php | 2 + orif/plafor/Controllers/Apprentice.php | 30 ++++ orif/plafor/Views/apprentice/list.php | 137 ++++++++++---- orif/user/Language/fr/user_lang.php | 2 + orif/welcome/Views/welcome_message.php | 1 + public/css/progressbarstyle.css | 236 +++++++++++++++++++++++++ public/images/floumin.svg | 97 ++++++++++ public/jsComponents/progressStats.js | 231 ++++++++++++++++++++++++ public/jsComponents/progressbar.js | 170 ++++++++++++++++++ src/progressStats.js | 128 ++++++++++++++ src/progressbar.js | 137 ++++++++++++++ 12 files changed, 1139 insertions(+), 39 deletions(-) create mode 100644 public/css/progressbarstyle.css create mode 100644 public/images/floumin.svg create mode 100644 public/jsComponents/progressStats.js create mode 100644 public/jsComponents/progressbar.js create mode 100644 src/progressStats.js create mode 100644 src/progressbar.js diff --git a/orif/common/Views/footer.php b/orif/common/Views/footer.php index 7021179e..ac08cd78 100644 --- a/orif/common/Views/footer.php +++ b/orif/common/Views/footer.php @@ -14,5 +14,12 @@ let icolink=document.querySelector("link:first-of-type"); document.getElementsByTagName("head")[0].append(icolink); + + + + + + + diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index c9418c0a..3ef3fb7d 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -46,6 +46,8 @@ " /> + " /> + where('fk_user',$id)->findAll(),'id'); + $AcquisitionLevels=AcquisitionLevelModel::getInstance()->findAll(); + foreach ($usercourseids as $usercourseid) { + $AcquisitionStatus=AcquisitionStatusModel::getInstance()->where('fk_user_course',$usercourseid)->findAll(); + $objecivesAssociated=[]; + foreach ($AcquisitionStatus as $acquisitionStatus){ + $tempaArray=ObjectiveModel::getInstance()->find($acquisitionStatus['fk_objective']); + try{ + $tempaArray=array_merge($tempaArray,['acquisition_level'=>$acquisitionStatus['fk_acquisition_level']]); + }catch (\Exception $e){ + + } + $objecivesAssociated[$acquisitionStatus['fk_objective']]=$tempaArray; + } + $objectivesByStatusAnduserCourse[$usercourseid]=$objecivesAssociated; + + + + } + return json_encode($objectivesByStatusAnduserCourse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + } } \ No newline at end of file diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index f41db2a7..6b4f4dff 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -13,61 +13,120 @@

    - 'GET']); - echo form_dropdown('trainer_id', $trainers, $trainer_id, ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); - echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']);?> - - + 'GET']); + echo form_dropdown('trainer_id', $trainers, $trainer_id, ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); + echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']); ?> + + - 'toggle_deleted', 'class' => 'form-check-input' - ]);?> - 'form-check-label']);?> + ]); ?> + 'form-check-label']); ?>
    - -
    +
    - -
    - + + +
    +
    - - - - + + + + + - - - - + + - - + + + -
    +
    + +
    +
    +
    -
    + +
    + + diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index 87980f8d..3939f472 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -119,6 +119,7 @@ 'title_comment_update' =>'Modifer le commentaire', 'title_comment_new' =>'Ajouter un commentaire', 'title_comment_delete' =>'Supprimer le commentaire', +'title_progress' => 'Avancement', // Details labels 'details_apprentice' =>'Détail de l\'apprenti', @@ -128,6 +129,7 @@ 'details_objective' =>'Détail de l\'objectif', 'details_user_course' =>'Détail de la formation de l\'apprenti', 'details_acquisition_status' =>'Détail du statut d\'acquisition', +'details_progress' =>'En savoir plus', // Fields labels 'field_apprentice_username' =>'Nom de l\'apprenti', diff --git a/orif/welcome/Views/welcome_message.php b/orif/welcome/Views/welcome_message.php index 9f676b06..64cbe9a1 100644 --- a/orif/welcome/Views/welcome_message.php +++ b/orif/welcome/Views/welcome_message.php @@ -328,6 +328,7 @@ function toggleMenu() { + diff --git a/public/css/progressbarstyle.css b/public/css/progressbarstyle.css new file mode 100644 index 00000000..f074ac37 --- /dev/null +++ b/public/css/progressbarstyle.css @@ -0,0 +1,236 @@ + +#progressContainer { + + display: flex; + + transition: all 0.08s ease-in-out; + + margin-top: 10px; + + border: #AE9B70 3px solid; + + width: 100%; + + height: 30px; + + max-height: 200px; + + border-radius: 10px; + + overflow: visible !important; + + flex-direction: row; + +} +.positionedElement { + + display: block; + + height: 100%; + width:0!important; + + transition: width,transform 0.2s; + + transform: translateY(30px)!important; + +} +.positionedElement:nth-child(2n){ + transform: translateY(-30px)!important; + transition: width,transform 0.2s; + +} +.positionedElement:first-child{ + border-radius: 5px 0 0 5px; +} +.positionedElement:last-child{ + border-radius: 0 5px 5px 0; + +} +.frame{ + z-index: 50; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.7); +} +.frame main { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 70%; + height: 60vh; + background-color: white; + padding:0 10px 0 10px; + z-index: 0; +} +.frame .hbar{ + display: flex; + flex-direction: column; + justify-content: flex-end; + width: 100%; + height: 90%; + border: 2px #AE9B70 solid; + border-radius: 20px; + transition: all 0.3s; + min-height: 191px!important; + min-width: 40px; + max-width: 206px; + overflow-x: hidden; + background-color: white; + + + +} +.hbar .progress-bar{ + align-self: flex-start!important; + transition: all 1s; +} +.progress-root{ + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + text-align: center; + transition: all 0.5s; + background-position: center; + padding: 50px; + min-height: 191px!important; + max-height: 400px; +} +.iprogress-root:nth-of-type(1){ +} +.iprogress-root:nth-of-type(2){ + transform: translateX(-100%); +} +.iprogress-root:nth-of-type(3){ + transform: translateX(-200%); +} +.iprogress-root:nth-of-type(4){ + transform: translateX(-300%); + +} +.progress-root img{ + position: absolute; + z-index: -1; + object-fit: contain; + width: 0; + height: 0; + transform-origin: center; + transition: width, height 0.2s ease-in-out; + transform: translateX(5px); +} +.progress-bar{ + width:100%; +} +.meter{ + position: relative; + display: flex!important; + flex-direction: column; + justify-content: space-between; + width: 10px; + height: 90%!important; + min-height: 191px!important; + z-index: -1; + +} +.meter span{ + width: 10px; + height: 5px; + background-color: #ae9b70; + display: block; + border-right: 30px #ae9b70 solid; + min-height: 1px; + max-height: 5px; + box-sizing: border-box; + text-align: left; + margin-right: 20px; +} +.meter h5{ + position: absolute; + left: -25px; + overflow: visible; + float: left; + font-size: 0.8rem; +} +.meter h5:nth-child(1n+2){ + right: 10px; +} +.meter h5:nth-child(1){ + top:-3% +} +.meter h5:nth-child(3){ + top: 7%; +} +.meter h5:nth-child(5){ + top:17%; +} +.meter h5:nth-child(7){ + top:26%; +} +.meter h5:nth-child(9){ + top:36%; +} +.meter h5:nth-child(11){ + top:46%; +} +.meter h5:nth-child(13){ + top:56%; +} +.meter h5:nth-child(15){ + top:65%; +} +.meter h5:nth-child(17){ + top:75%; +} +.meter h5:nth-child(19){ + top:85%; +} +.meter span:first-of-type{ + z-index: -1; +} +.meter span:nth-child(11){ + display: none!important; +} +#firstbar{ + transition-delay: 1.5s; + +} +#secondbar{ + transition-delay: 1s; + +} +#thirdbar{ + transition-delay: 0.5s; +} +#fourthbar{ +} +@media screen and (max-width: 600px){ + .frame main{ + flex-direction: column; + width: 90%!important; + height: auto; + } + .iprogress-root:nth-of-type(1){ + } + .iprogress-root:nth-of-type(2){ + transform: translateY(-100%); + } + .iprogress-root:nth-of-type(3){ + transform: translateY(-200%); + } + .iprogress-root:nth-of-type(4){ + transform: translateY(-300%); + + } + +} \ No newline at end of file diff --git a/public/images/floumin.svg b/public/images/floumin.svg new file mode 100644 index 00000000..f8f40e65 --- /dev/null +++ b/public/images/floumin.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/public/jsComponents/progressStats.js b/public/jsComponents/progressStats.js new file mode 100644 index 00000000..99d5d2ee --- /dev/null +++ b/public/jsComponents/progressStats.js @@ -0,0 +1,231 @@ +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ProgressStats = function (_React$Component) { + _inherits(ProgressStats, _React$Component); + + function ProgressStats(props) { + _classCallCheck(this, ProgressStats); + + var _this = _possibleConstructorReturn(this, (ProgressStats.__proto__ || Object.getPrototypeOf(ProgressStats)).call(this, props)); + + _this.element = []; + + _this.mainframe = React.createRef(); + _this.playanim = _this.playanim.bind(_this); + for (var i = 0; i < _this.props.elements.length; i++) { + _this.element.push(React.createElement(Barelement, { animatableImagePath: _this.props.animatableImagePath, transitionDelay: i + 's', backgroundColor: _this.props.colors[i], elements: _this.props.elements[i] })); + } + + return _this; + } + + _createClass(ProgressStats, [{ + key: 'render', + value: function render() { + var _this2 = this; + + return React.createElement( + 'div', + { id: 'proressStats' }, + React.createElement( + 'div', + { className: 'frame' }, + React.createElement( + 'main', + { ref: this.mainframe }, + this.element, + React.createElement('input', { type: 'button', className: 'btn btn-primary', onClick: function onClick() { + _this2.playanim(); + }, value: 'salut' }) + ) + ) + ); + } + }, { + key: 'playanim', + value: function playanim() { + var _this3 = this; + + var i = 0; + var interval = setInterval(function () { + _this3.mainframe.current.querySelectorAll('.progress-root')[i].addEventListener('transitionrun', function (e) { + e.target.childNodes.forEach(function (element) { + if (element.tagName === "IMG") { + element.style.setProperty('width', '150%', 'important'); + element.style.setProperty('height', '150%', 'important'); + element.addEventListener('transitionend', function (e) { + e.target.style = ''; + + e.target.style.setProperty('transition', 'all 0.2s', 'important'); + e.target.style.setProperty('transition-delay', '0.1s', 'important'); + }); + } + }); + }); + _this3.mainframe.current.querySelectorAll('.progress-root')[i].style.transform = 'unset'; + //delete interval + i++; + if (i === 4) { + clearInterval(interval); + } + }, 200); + } + }]); + + return ProgressStats; +}(React.Component); + +var Meter = function Meter() { + return React.createElement( + 'div', + { className: 'meter', style: { display: 'flex', flexDirection: 'column' } }, + React.createElement( + 'h5', + null, + '100' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '90' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '80' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '70' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '60' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '50' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '40' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '30' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '20' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '10' + ), + React.createElement('span', null), + React.createElement('span', { style: { opacity: '0' } }) + ); +}; + +var Barelement = function (_React$Component2) { + _inherits(Barelement, _React$Component2); + + function Barelement(props) { + _classCallCheck(this, Barelement); + + var _this4 = _possibleConstructorReturn(this, (Barelement.__proto__ || Object.getPrototypeOf(Barelement)).call(this, props)); + + _this4.progressContainer = React.createRef(); + _this4.intervalArray = []; + _this4.state = { + elements: [], + hlayouts: [] + }; + return _this4; + } + + _createClass(Barelement, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this5 = this; + + var i = this.intervalArray.length; + + this.intervalArray.push({ index: 0, + interval: setInterval(function () { + if (_this5.intervalArray[i].index >= _this5.props.elements) { + if (_this5.state.elements.length % 5 !== 0) _this5.setState({ hlayouts: [React.createElement( + Hlayout, + null, + _this5.state.elements.slice(_this5.state.elements.length - _this5.state.elements.length % 5) + )].concat(_this5.state.hlayouts) }); + + clearInterval(_this5.intervalArray[i].interval); + } else { + if (_this5.state.elements.length % 5 === 0 && _this5.state.elements.length !== 0) { + _this5.setState({ hlayouts: _this5.state.hlayouts.concat(React.createElement( + Hlayout, + null, + _this5.state.elements.slice(_this5.state.elements.length - 5) + )) }); + } + _this5.setState({ + elements: _this5.state.elements.concat(React.createElement('span', { style: { backgroundColor: _this5.props.backgroundColor, transitionDelay: _this5.props.transitionDelay, width: '20%', height: '100%', display: 'block', borderRadius: '4px', boxSizing: 'border-box', padding: '0.5px', backgroundClip: 'content-box' } })) + }); + } + _this5.intervalArray[i].index++; + }, 20) }); + } + }, { + key: 'render', + value: function render() { + return React.createElement( + 'div', + { className: 'progress-root iprogress-root' }, + React.createElement(Meter, null), + React.createElement('img', { src: this.props.animatableImagePath }), + React.createElement( + 'div', + { className: 'hbar', ref: this.progressContainer }, + React.createElement( + 'div', + { style: { display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', width: '100%', height: '100%' } }, + this.state.hlayouts + ) + ) + ); + } + }]); + + return Barelement; +}(React.Component); + +var Hlayout = function Hlayout(props) { + return React.createElement( + 'span', + { style: { width: '100%', height: '5%', display: 'flex', flexDirection: 'row', transition: 'all 0.5s' } }, + props.children + ); +}; \ No newline at end of file diff --git a/public/jsComponents/progressbar.js b/public/jsComponents/progressbar.js new file mode 100644 index 00000000..2116eff9 --- /dev/null +++ b/public/jsComponents/progressbar.js @@ -0,0 +1,170 @@ +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Progressbar = function (_React$Component) { + _inherits(Progressbar, _React$Component); + + function Progressbar(props) { + _classCallCheck(this, Progressbar); + + var _this = _possibleConstructorReturn(this, (Progressbar.__proto__ || Object.getPrototypeOf(Progressbar)).call(this, props)); + + _this.displayProgress = _this.displayProgress.bind(_this); + _this.removeProgress = _this.removeProgress.bind(_this); + _this.showDetails = _this.showDetails.bind(_this); + _this.progressContainer = React.createRef(); + return _this; + } + + _createClass(Progressbar, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.displayProgress(); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + return React.createElement( + 'span', + { style: { backgroundColor: 'unset!important' } }, + React.createElement('div', { id: 'progressContainer', ref: this.progressContainer }), + React.createElement( + 'a', + { style: { marginLeft: '10px', marginTop: '5px' }, className: 'btn btn-secondary', onClick: function onClick(ev) { + _this2.showDetails(ev); + } }, + this.props.detailsLbl + ), + React.createElement('span', null) + ); + } + /** + * this function is called when need to load progressBar + * @param props + */ + + }, { + key: 'displayProgress', + value: function displayProgress() { + var _this3 = this; + + //Get container for progressbar + this.progressContainer.current.style.animation = ''; + //set value of container to empty + this.progressContainer.current.innerHTML = ''; + var total = 0; + //element color is a map indexed by color + var elementColor = new Map(); + //add total number of objectives to total variable + this.props.colors.forEach(function (color, idx) { + total += parseInt(_this3.props.elements[idx]); + //if there is many element with same color add to number + if (elementColor.get(color) != null) { + elementColor.set(color, elementColor.get(color) + parseInt(_this3.props.elements[idx])); + } else { + elementColor.set(color, parseInt(_this3.props.elements[idx])); + } + }); + //width to use for one element + var percentUnit = Math.round(100 / total * 100) / 100; + // array containing dom node + var elementArray = []; + var elementToGroup = this.props.elementToGroup != null ? this.props.elementToGroup : 10; + elementColor.forEach(function (number, color) { + var i = 0; + for (var _i = 0; _i < number; _i++) { + var node = document.createElement('div'); + node.style.backgroundColor = color.toString(); + node.classList.add('positionedElement'); + node.style.getPropertyValue('width') == "" ? node.style.setProperty('width', percentUnit + '%', 'important') : ''; + if (node.isEqualNode(elementArray[elementArray.length - 1]) && (_i + 1) % elementToGroup === 0) { + node.style.setProperty('width', elementToGroup * percentUnit + '%', 'important'); + for (var nbr = 0; nbr < elementToGroup - 1; nbr++) { + elementArray.pop(); + } + } + elementArray.push(node); + } + }); + + var i = 0; + var interval = setInterval(function (e) { + if (i <= elementArray.length) { + //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; + i === elementArray.length - 1 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : i - 1 >= 0 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : ''; + try { + _this3.progressContainer.current.appendChild(elementArray[i]); + } catch (e) { + i++; + } + i++; + } else { + clearInterval(interval); + var testedColor = void 0; + var arraywidth = new Map(); + for (var _i2 = 0; _i2 < _this3.progressContainer.current.childNodes.length; _i2++) { + var child = _this3.progressContainer.current.childNodes[_i2]; + //When the child has the same bkcolor as last element, increase width + if (child.style.backgroundColor == testedColor) { + arraywidth.set(testedColor, arraywidth.get(testedColor) + Math.round(parseFloat(child.style.width) * 10) / 10); + } + //else add element to arraywidth + else { + testedColor = child.style.backgroundColor; + arraywidth.set(testedColor, Math.round(parseFloat(child.style.width) * 10) / 10); + } + testedColor = child.style.backgroundColor; + } + _this3.progressContainer.current.innerHTML = ''; + arraywidth.forEach(function (size, color) { + var node = document.createElement('div'); + node.classList.add('positionedElement'); + node.style.backgroundColor = color; + node.style.setProperty('width', size + '%', 'important'); + node.style.setProperty('transform', 'translate(0)', 'important'); + _this3.progressContainer.current.appendChild(node); + }); + } + }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); + } + /** + * this function is called when need to reset progressBar + * @param props + */ + + }, { + key: 'removeProgress', + value: function removeProgress() { + var nodeList = document.querySelectorAll('.positionedElement'); + var i = nodeList.length - 1; + var interval = setInterval(function () { + if (i >= 0) { + nodeList.item(i).style = ''; + nodeList.item(i).style.transition = 'all 1s'; + } else { + clearInterval(interval); + } + i--; + }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); + } + /** + * this function is called when need to show details (callback) + * @param ev the event to handle + */ + + }, { + key: 'showDetails', + value: function showDetails(ev) { + this.props.clickAction != null ? this.props.clickAction(ev.target.nextSibling, this.props.colors, this.props.elements) : null; + } + }]); + + return Progressbar; +}(React.Component); \ No newline at end of file diff --git a/src/progressStats.js b/src/progressStats.js new file mode 100644 index 00000000..bcf6826a --- /dev/null +++ b/src/progressStats.js @@ -0,0 +1,128 @@ +class ProgressStats extends React.Component{ + element=[]; + constructor(props) { + super(props); + this.mainframe=React.createRef(); + this.playanim=this.playanim.bind(this); + for(let i=0;i) + } + + + + + } + render(){ + return ( +
    +
    +
    + {this.element} + {this.playanim()}} value={'salut'}/> +
    +
    +
    + ); + } + playanim(){ + let i=0 + const interval=setInterval(()=> { + this.mainframe.current.querySelectorAll('.progress-root')[i] + .addEventListener('transitionrun', (e) => { + e.target.childNodes.forEach((element) => { + if (element.tagName === "IMG") { + element.style.setProperty('width', '150%', 'important'); + element.style.setProperty('height', '150%', 'important'); + element.addEventListener('transitionend', (e) => { + e.target.style = ''; + + e.target.style.setProperty('transition', 'all 0.2s', 'important'); + e.target.style.setProperty('transition-delay', '0.1s', 'important') + + }) + + + } + }) + }) + this.mainframe.current.querySelectorAll('.progress-root')[i].style.transform = 'unset' + //delete interval + i++; + if (i===4){ + clearInterval(interval); + } + },200); + + } + + +} +const Meter = ()=>{ + return ( +
    100
    90
    80
    70
    60
    50
    40
    30
    20
    10
    + + ) +} +class Barelement extends React.Component{ + + constructor(props){ + super(props); + this.progressContainer=React.createRef(); + this.intervalArray=[]; + this.state={ + elements:[], + hlayouts:[] + } + } + + + componentDidMount(){ + const i=this.intervalArray.length; + + this.intervalArray.push({index:0, + interval:setInterval(()=>{ + if (this.intervalArray[i].index>=this.props.elements){ + if(this.state.elements.length%5!==0) + this.setState({hlayouts:[{this.state.elements.slice(this.state.elements.length-(this.state.elements.length%5))}].concat(this.state.hlayouts)}); + + clearInterval(this.intervalArray[i].interval); + } + else{ + if (this.state.elements.length%5===0 && this.state.elements.length!==0){ + this.setState({hlayouts:this.state.hlayouts.concat({this.state.elements.slice(this.state.elements.length-5)})}); + } + this.setState({ + elements:this.state.elements.concat() + }) + + } + this.intervalArray[i].index++; + + },20)}); + + + + } + render() { + return ( +
    + + +
    +
    + {this.state.hlayouts} +
    +
    + + +
    + ); + } +} +const Hlayout=(props)=>{ + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/src/progressbar.js b/src/progressbar.js new file mode 100644 index 00000000..c89a3179 --- /dev/null +++ b/src/progressbar.js @@ -0,0 +1,137 @@ +class Progressbar extends React.Component{ + constructor(props) { + super(props); + this.displayProgress=this.displayProgress.bind(this); + this.removeProgress=this.removeProgress.bind(this); + this.showDetails=this.showDetails.bind(this); + this.progressContainer=React.createRef() + } + componentDidMount(){ + this.displayProgress(); + } + render(){ + return ( + +
    +
    + {this.showDetails(ev);} + }>{this.props.detailsLbl} +
    + ) +} + /** + * this function is called when need to load progressBar + * @param props + */ + displayProgress() { + //Get container for progressbar + this.progressContainer.current.style.animation = ''; + //set value of container to empty + this.progressContainer.current.innerHTML = ''; + let total = 0; + //element color is a map indexed by color + let elementColor = new Map(); + //add total number of objectives to total variable + this.props.colors.forEach((color, idx) => { + total += parseInt(this.props.elements[idx]); + //if there is many element with same color add to number + if (elementColor.get(color) != null) { + elementColor.set(color, elementColor.get(color) + parseInt(this.props.elements[idx])); + } else { + elementColor.set(color, parseInt(this.props.elements[idx])); + } + }); + //width to use for one element + const percentUnit = Math.round(100 / total * 100)/100; + // array containing dom node + let elementArray = []; + const elementToGroup=this.props.elementToGroup!=null?this.props.elementToGroup:10; + elementColor.forEach((number, color) => { + let i = 0; + for (let i = 0; i < number; i++) { + let node = document.createElement('div'); + node.style.backgroundColor = (color.toString()); + node.classList.add('positionedElement'); + node.style.getPropertyValue('width')==""?node.style.setProperty('width',percentUnit+'%','important'):'' + if (node.isEqualNode(elementArray[elementArray.length-1])&&(i+1)%elementToGroup===0){ + node.style.setProperty('width',(elementToGroup*percentUnit)+'%','important') + for (let nbr=0;nbr { + if (i <= elementArray.length) { + //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; + i===elementArray.length-1?elementArray[i-1].style.setProperty('transform','translate(0)','important'):i-1>=0?elementArray[i-1].style.setProperty('transform','translate(0)','important'):''; + try { + this.progressContainer.current.appendChild(elementArray[i]); + }catch (e){ + i++; + } + i++; + } + else{ + clearInterval(interval); + let testedColor; + const arraywidth=new Map(); + for (let i=0;i{ + const node=document.createElement('div'); + node.classList.add('positionedElement'); + node.style.backgroundColor=color; + node.style.setProperty('width',(size)+'%','important'); + node.style.setProperty('transform','translate(0)','important'); + this.progressContainer.current.appendChild(node); + }) + + + } + }, this.props.timeToRefresh!=null?this.props.timeToRefresh:10); + + } + /** + * this function is called when need to reset progressBar + * @param props + */ + removeProgress(){ + let nodeList=document.querySelectorAll('.positionedElement'); + let i=nodeList.length-1; + const interval=setInterval(()=>{ + if (i>=0){ + nodeList.item(i).style=''; + nodeList.item(i).style.transition='all 1s'; + } + else{ + clearInterval(interval); + } + i--; + },this.props.timeToRefresh!=null?this.props.timeToRefresh:10) + } + /** + * this function is called when need to show details (callback) + * @param ev the event to handle + */ + showDetails(ev){ + this.props.clickAction!=null? + this.props.clickAction(ev.target.nextSibling,this.props.colors,this.props.elements):null + } +} From dd230cb13eb6b54bb2bdc93ee5cd5a149d183b3d Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 22 Sep 2021 11:09:51 +0200 Subject: [PATCH 104/172] updated data seeds and removed test datas --- .../Seeds/addAcquisitionLevelDatas.php | 36 +- .../Seeds/addAcquisitionStatusDatas.php | 2047 ++--------- .../Seeds/addCompetenceDomainDatas.php | 230 +- .../Database/Seeds/addCoursePlanDatas.php | 74 +- .../Database/Seeds/addObjectiveDatas.php | 2987 ++--------------- .../Seeds/addOperationalCompetencesDatas.php | 807 +---- .../Seeds/addTrainerApprenticeDatas.php | 31 +- .../Database/Seeds/addUserCoursesDatas.php | 43 +- 8 files changed, 711 insertions(+), 5544 deletions(-) diff --git a/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php index 6b6f9f1f..249447f5 100644 --- a/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php +++ b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php @@ -11,25 +11,23 @@ class addAcquisitionLevelDatas extends Seeder public function run() { //Acquisition level// - $acquisitionLevels=[ - array ( - 'id' => '1', - 'name' => 'Non expliqué', - ), - array ( - 'id' => '2', - 'name' => 'Expliqué', - ), - array ( - 'id' => '3', - 'name' => 'Exercé', - ), - array ( - 'id' => '4', - 'name' => 'Autonome', - ), - ]; - foreach ($acquisitionLevels as $acquisitionLevel) + /** + * Export to PHP Array plugin for PHPMyAdmin + * @version 5.0.4 + */ + + /** + * Database `plafor` + */ + + /* `plafor`.`acquisition_level` */ + $acquisition_level = array( + array('id' => '1','name' => 'Non expliqué'), + array('id' => '2','name' => 'Expliqué'), + array('id' => '3','name' => 'Exercé'), + array('id' => '4','name' => 'Autonome') + ); + foreach ($acquisition_level as $acquisitionLevel) $this->db->table('acquisition_level')->insert($acquisitionLevel); } diff --git a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php index ff78572d..121338da 100644 --- a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php +++ b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php @@ -11,1821 +11,238 @@ class addAcquisitionStatusDatas extends Seeder public function run() { //Acquisition status// - $acquisitionStatus=[ - array ( - 'id' => '1', - 'fk_objective' => '1', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '2', - 'fk_objective' => '2', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '3', - 'fk_objective' => '3', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '4', - 'fk_objective' => '4', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '5', - 'fk_objective' => '5', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '6', - 'fk_objective' => '6', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '7', - 'fk_objective' => '7', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '8', - 'fk_objective' => '8', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '9', - 'fk_objective' => '9', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '10', - 'fk_objective' => '10', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '11', - 'fk_objective' => '11', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '12', - 'fk_objective' => '12', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '13', - 'fk_objective' => '13', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '14', - 'fk_objective' => '14', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '15', - 'fk_objective' => '15', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '16', - 'fk_objective' => '16', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '17', - 'fk_objective' => '17', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '18', - 'fk_objective' => '18', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '19', - 'fk_objective' => '19', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '20', - 'fk_objective' => '20', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '21', - 'fk_objective' => '21', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '22', - 'fk_objective' => '22', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '23', - 'fk_objective' => '23', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '24', - 'fk_objective' => '24', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '25', - 'fk_objective' => '25', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '26', - 'fk_objective' => '26', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '27', - 'fk_objective' => '27', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '28', - 'fk_objective' => '28', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '29', - 'fk_objective' => '29', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '30', - 'fk_objective' => '30', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '31', - 'fk_objective' => '31', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '32', - 'fk_objective' => '32', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '33', - 'fk_objective' => '33', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '34', - 'fk_objective' => '34', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '35', - 'fk_objective' => '35', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '36', - 'fk_objective' => '36', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '37', - 'fk_objective' => '37', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '38', - 'fk_objective' => '38', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '39', - 'fk_objective' => '39', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '40', - 'fk_objective' => '40', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '41', - 'fk_objective' => '41', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '42', - 'fk_objective' => '42', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '43', - 'fk_objective' => '43', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '44', - 'fk_objective' => '44', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '45', - 'fk_objective' => '45', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '46', - 'fk_objective' => '46', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '47', - 'fk_objective' => '47', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '48', - 'fk_objective' => '48', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '49', - 'fk_objective' => '49', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '50', - 'fk_objective' => '50', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '51', - 'fk_objective' => '51', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '52', - 'fk_objective' => '52', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '53', - 'fk_objective' => '53', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '54', - 'fk_objective' => '54', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '55', - 'fk_objective' => '55', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '56', - 'fk_objective' => '56', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '57', - 'fk_objective' => '57', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '58', - 'fk_objective' => '58', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '59', - 'fk_objective' => '59', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '60', - 'fk_objective' => '60', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '61', - 'fk_objective' => '61', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '62', - 'fk_objective' => '62', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '63', - 'fk_objective' => '63', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '64', - 'fk_objective' => '64', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '65', - 'fk_objective' => '65', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '66', - 'fk_objective' => '66', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '67', - 'fk_objective' => '67', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '68', - 'fk_objective' => '68', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '69', - 'fk_objective' => '69', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '70', - 'fk_objective' => '70', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '71', - 'fk_objective' => '71', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '72', - 'fk_objective' => '72', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '73', - 'fk_objective' => '73', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '74', - 'fk_objective' => '177', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '75', - 'fk_objective' => '178', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '76', - 'fk_objective' => '179', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '77', - 'fk_objective' => '180', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '78', - 'fk_objective' => '181', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '79', - 'fk_objective' => '182', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '80', - 'fk_objective' => '183', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '81', - 'fk_objective' => '184', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '82', - 'fk_objective' => '185', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '83', - 'fk_objective' => '186', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '84', - 'fk_objective' => '187', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '85', - 'fk_objective' => '188', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '86', - 'fk_objective' => '189', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '87', - 'fk_objective' => '190', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '88', - 'fk_objective' => '191', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '89', - 'fk_objective' => '192', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '90', - 'fk_objective' => '193', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '91', - 'fk_objective' => '194', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '92', - 'fk_objective' => '195', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '93', - 'fk_objective' => '196', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '94', - 'fk_objective' => '197', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '95', - 'fk_objective' => '198', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '96', - 'fk_objective' => '199', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '97', - 'fk_objective' => '200', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '98', - 'fk_objective' => '201', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '99', - 'fk_objective' => '202', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '100', - 'fk_objective' => '203', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '101', - 'fk_objective' => '204', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '102', - 'fk_objective' => '205', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '103', - 'fk_objective' => '206', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '104', - 'fk_objective' => '207', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '105', - 'fk_objective' => '208', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '106', - 'fk_objective' => '209', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '107', - 'fk_objective' => '210', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '108', - 'fk_objective' => '211', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '109', - 'fk_objective' => '212', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '110', - 'fk_objective' => '213', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '111', - 'fk_objective' => '214', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '112', - 'fk_objective' => '215', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '113', - 'fk_objective' => '216', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '114', - 'fk_objective' => '217', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '115', - 'fk_objective' => '218', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '116', - 'fk_objective' => '219', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '117', - 'fk_objective' => '220', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '118', - 'fk_objective' => '221', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '119', - 'fk_objective' => '222', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '120', - 'fk_objective' => '223', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '121', - 'fk_objective' => '224', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '122', - 'fk_objective' => '225', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '123', - 'fk_objective' => '226', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '124', - 'fk_objective' => '227', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '125', - 'fk_objective' => '228', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '126', - 'fk_objective' => '229', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '127', - 'fk_objective' => '230', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '128', - 'fk_objective' => '231', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '129', - 'fk_objective' => '232', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '130', - 'fk_objective' => '233', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '131', - 'fk_objective' => '234', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '132', - 'fk_objective' => '235', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '133', - 'fk_objective' => '236', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '134', - 'fk_objective' => '237', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '135', - 'fk_objective' => '238', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '136', - 'fk_objective' => '239', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '137', - 'fk_objective' => '240', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '138', - 'fk_objective' => '241', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '139', - 'fk_objective' => '242', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '140', - 'fk_objective' => '243', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '141', - 'fk_objective' => '244', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '142', - 'fk_objective' => '245', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '143', - 'fk_objective' => '246', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '144', - 'fk_objective' => '247', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '145', - 'fk_objective' => '248', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '146', - 'fk_objective' => '249', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '147', - 'fk_objective' => '250', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '148', - 'fk_objective' => '251', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '149', - 'fk_objective' => '252', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '150', - 'fk_objective' => '253', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '151', - 'fk_objective' => '254', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '152', - 'fk_objective' => '255', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '153', - 'fk_objective' => '256', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '154', - 'fk_objective' => '257', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '155', - 'fk_objective' => '258', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '156', - 'fk_objective' => '259', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '157', - 'fk_objective' => '260', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '158', - 'fk_objective' => '261', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '159', - 'fk_objective' => '262', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '160', - 'fk_objective' => '263', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '161', - 'fk_objective' => '264', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '162', - 'fk_objective' => '265', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '163', - 'fk_objective' => '266', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '164', - 'fk_objective' => '267', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '165', - 'fk_objective' => '268', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '166', - 'fk_objective' => '269', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '167', - 'fk_objective' => '270', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '168', - 'fk_objective' => '271', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '169', - 'fk_objective' => '272', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '170', - 'fk_objective' => '273', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '171', - 'fk_objective' => '274', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '172', - 'fk_objective' => '275', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '173', - 'fk_objective' => '276', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '174', - 'fk_objective' => '277', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '175', - 'fk_objective' => '278', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '176', - 'fk_objective' => '279', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '177', - 'fk_objective' => '280', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '178', - 'fk_objective' => '281', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '179', - 'fk_objective' => '282', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '180', - 'fk_objective' => '283', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '181', - 'fk_objective' => '284', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '182', - 'fk_objective' => '285', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '183', - 'fk_objective' => '286', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '184', - 'fk_objective' => '287', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '185', - 'fk_objective' => '288', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '186', - 'fk_objective' => '289', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '187', - 'fk_objective' => '290', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '188', - 'fk_objective' => '291', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '189', - 'fk_objective' => '292', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '190', - 'fk_objective' => '293', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '191', - 'fk_objective' => '294', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '192', - 'fk_objective' => '295', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '193', - 'fk_objective' => '296', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '194', - 'fk_objective' => '297', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '195', - 'fk_objective' => '298', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '196', - 'fk_objective' => '299', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '197', - 'fk_objective' => '300', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '198', - 'fk_objective' => '301', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '199', - 'fk_objective' => '302', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '200', - 'fk_objective' => '303', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '201', - 'fk_objective' => '304', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '202', - 'fk_objective' => '305', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '203', - 'fk_objective' => '306', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '204', - 'fk_objective' => '307', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '205', - 'fk_objective' => '308', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '206', - 'fk_objective' => '309', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '207', - 'fk_objective' => '310', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '208', - 'fk_objective' => '311', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '209', - 'fk_objective' => '312', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '210', - 'fk_objective' => '313', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '211', - 'fk_objective' => '314', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '212', - 'fk_objective' => '315', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '213', - 'fk_objective' => '316', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '214', - 'fk_objective' => '317', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '215', - 'fk_objective' => '318', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '216', - 'fk_objective' => '319', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '217', - 'fk_objective' => '320', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '218', - 'fk_objective' => '321', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '219', - 'fk_objective' => '322', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '220', - 'fk_objective' => '323', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '221', - 'fk_objective' => '324', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '222', - 'fk_objective' => '325', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '223', - 'fk_objective' => '326', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '224', - 'fk_objective' => '327', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '225', - 'fk_objective' => '328', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '226', - 'fk_objective' => '329', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '227', - 'fk_objective' => '330', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '228', - 'fk_objective' => '331', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '229', - 'fk_objective' => '332', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '230', - 'fk_objective' => '1', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '231', - 'fk_objective' => '2', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '232', - 'fk_objective' => '3', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '233', - 'fk_objective' => '4', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '234', - 'fk_objective' => '5', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '235', - 'fk_objective' => '6', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '236', - 'fk_objective' => '7', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '237', - 'fk_objective' => '8', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '238', - 'fk_objective' => '9', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '239', - 'fk_objective' => '10', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '240', - 'fk_objective' => '11', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '241', - 'fk_objective' => '12', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '242', - 'fk_objective' => '13', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '243', - 'fk_objective' => '14', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '244', - 'fk_objective' => '15', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '245', - 'fk_objective' => '16', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '246', - 'fk_objective' => '17', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '247', - 'fk_objective' => '18', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '248', - 'fk_objective' => '19', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '249', - 'fk_objective' => '20', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '250', - 'fk_objective' => '21', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '251', - 'fk_objective' => '22', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '252', - 'fk_objective' => '23', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '253', - 'fk_objective' => '24', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '254', - 'fk_objective' => '25', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '255', - 'fk_objective' => '26', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '256', - 'fk_objective' => '27', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '257', - 'fk_objective' => '28', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '258', - 'fk_objective' => '29', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '259', - 'fk_objective' => '30', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '260', - 'fk_objective' => '31', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '261', - 'fk_objective' => '32', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '262', - 'fk_objective' => '33', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '263', - 'fk_objective' => '34', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '264', - 'fk_objective' => '35', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '265', - 'fk_objective' => '36', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '266', - 'fk_objective' => '37', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '267', - 'fk_objective' => '38', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '268', - 'fk_objective' => '39', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '269', - 'fk_objective' => '40', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '270', - 'fk_objective' => '41', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '271', - 'fk_objective' => '42', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '272', - 'fk_objective' => '43', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '273', - 'fk_objective' => '44', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '274', - 'fk_objective' => '45', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '275', - 'fk_objective' => '46', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '276', - 'fk_objective' => '47', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '277', - 'fk_objective' => '48', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '278', - 'fk_objective' => '49', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '279', - 'fk_objective' => '50', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '280', - 'fk_objective' => '51', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '281', - 'fk_objective' => '52', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '282', - 'fk_objective' => '53', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '283', - 'fk_objective' => '54', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '284', - 'fk_objective' => '55', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '285', - 'fk_objective' => '56', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '286', - 'fk_objective' => '57', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '287', - 'fk_objective' => '58', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '288', - 'fk_objective' => '59', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '289', - 'fk_objective' => '60', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '290', - 'fk_objective' => '61', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '291', - 'fk_objective' => '62', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '292', - 'fk_objective' => '63', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '293', - 'fk_objective' => '64', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '294', - 'fk_objective' => '65', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '295', - 'fk_objective' => '66', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '296', - 'fk_objective' => '67', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '297', - 'fk_objective' => '68', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '298', - 'fk_objective' => '69', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '299', - 'fk_objective' => '70', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '300', - 'fk_objective' => '71', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '301', - 'fk_objective' => '72', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '302', - 'fk_objective' => '73', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - ]; - foreach ($acquisitionStatus as $acquisitionStatuse){ + $acquisition_status = array( + array('id' => '1','fk_objective' => '1','fk_user_course' => '1','fk_acquisition_level' => '4'), + array('id' => '2','fk_objective' => '2','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '3','fk_objective' => '3','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '4','fk_objective' => '4','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '5','fk_objective' => '5','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '6','fk_objective' => '6','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '7','fk_objective' => '7','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '8','fk_objective' => '8','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '9','fk_objective' => '9','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '10','fk_objective' => '10','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '11','fk_objective' => '11','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '12','fk_objective' => '12','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '13','fk_objective' => '13','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '14','fk_objective' => '14','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '15','fk_objective' => '15','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '16','fk_objective' => '16','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '17','fk_objective' => '17','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '18','fk_objective' => '18','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '19','fk_objective' => '19','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '20','fk_objective' => '20','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '21','fk_objective' => '21','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '22','fk_objective' => '22','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '23','fk_objective' => '23','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '24','fk_objective' => '24','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '25','fk_objective' => '25','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '26','fk_objective' => '26','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '27','fk_objective' => '27','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '28','fk_objective' => '28','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '29','fk_objective' => '29','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '30','fk_objective' => '30','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '31','fk_objective' => '31','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '32','fk_objective' => '32','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '33','fk_objective' => '33','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '34','fk_objective' => '34','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '35','fk_objective' => '35','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '36','fk_objective' => '36','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '37','fk_objective' => '37','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '38','fk_objective' => '38','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '39','fk_objective' => '39','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '40','fk_objective' => '40','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '41','fk_objective' => '41','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '42','fk_objective' => '42','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '43','fk_objective' => '43','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '44','fk_objective' => '44','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '45','fk_objective' => '45','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '46','fk_objective' => '46','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '47','fk_objective' => '47','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '48','fk_objective' => '48','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '49','fk_objective' => '49','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '50','fk_objective' => '50','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '51','fk_objective' => '51','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '52','fk_objective' => '52','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '53','fk_objective' => '53','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '54','fk_objective' => '54','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '55','fk_objective' => '55','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '56','fk_objective' => '56','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '57','fk_objective' => '57','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '58','fk_objective' => '58','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '59','fk_objective' => '59','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '60','fk_objective' => '60','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '61','fk_objective' => '61','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '62','fk_objective' => '62','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '63','fk_objective' => '63','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '64','fk_objective' => '64','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '65','fk_objective' => '65','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '66','fk_objective' => '66','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '67','fk_objective' => '67','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '68','fk_objective' => '68','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '69','fk_objective' => '69','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '70','fk_objective' => '70','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '71','fk_objective' => '71','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '72','fk_objective' => '72','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '73','fk_objective' => '73','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '74','fk_objective' => '177','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '75','fk_objective' => '178','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '76','fk_objective' => '179','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '77','fk_objective' => '180','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '78','fk_objective' => '181','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '79','fk_objective' => '182','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '80','fk_objective' => '183','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '81','fk_objective' => '184','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '82','fk_objective' => '185','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '83','fk_objective' => '186','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '84','fk_objective' => '187','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '85','fk_objective' => '188','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '86','fk_objective' => '189','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '87','fk_objective' => '190','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '88','fk_objective' => '191','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '89','fk_objective' => '192','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '90','fk_objective' => '193','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '91','fk_objective' => '194','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '92','fk_objective' => '195','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '93','fk_objective' => '196','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '94','fk_objective' => '197','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '95','fk_objective' => '198','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '96','fk_objective' => '199','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '97','fk_objective' => '200','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '98','fk_objective' => '201','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '99','fk_objective' => '202','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '100','fk_objective' => '203','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '101','fk_objective' => '204','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '102','fk_objective' => '205','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '103','fk_objective' => '206','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '104','fk_objective' => '207','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '105','fk_objective' => '208','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '106','fk_objective' => '209','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '107','fk_objective' => '210','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '108','fk_objective' => '211','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '109','fk_objective' => '212','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '110','fk_objective' => '213','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '111','fk_objective' => '214','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '112','fk_objective' => '215','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '113','fk_objective' => '216','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '114','fk_objective' => '217','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '115','fk_objective' => '218','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '116','fk_objective' => '219','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '117','fk_objective' => '220','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '118','fk_objective' => '221','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '119','fk_objective' => '222','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '120','fk_objective' => '223','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '121','fk_objective' => '224','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '122','fk_objective' => '225','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '123','fk_objective' => '226','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '124','fk_objective' => '227','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '125','fk_objective' => '228','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '126','fk_objective' => '229','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '127','fk_objective' => '230','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '128','fk_objective' => '231','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '129','fk_objective' => '232','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '130','fk_objective' => '233','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '131','fk_objective' => '234','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '132','fk_objective' => '235','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '133','fk_objective' => '236','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '134','fk_objective' => '237','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '135','fk_objective' => '238','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '136','fk_objective' => '239','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '137','fk_objective' => '240','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '138','fk_objective' => '241','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '139','fk_objective' => '242','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '140','fk_objective' => '243','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '141','fk_objective' => '244','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '142','fk_objective' => '245','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '143','fk_objective' => '246','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '144','fk_objective' => '247','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '145','fk_objective' => '248','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '146','fk_objective' => '249','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '147','fk_objective' => '250','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '148','fk_objective' => '251','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '149','fk_objective' => '252','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '150','fk_objective' => '253','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '151','fk_objective' => '254','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '152','fk_objective' => '255','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '153','fk_objective' => '256','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '154','fk_objective' => '257','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '155','fk_objective' => '258','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '156','fk_objective' => '259','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '157','fk_objective' => '260','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '158','fk_objective' => '261','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '159','fk_objective' => '262','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '160','fk_objective' => '263','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '161','fk_objective' => '264','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '162','fk_objective' => '265','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '163','fk_objective' => '266','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '164','fk_objective' => '267','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '165','fk_objective' => '268','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '166','fk_objective' => '269','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '167','fk_objective' => '270','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '168','fk_objective' => '271','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '169','fk_objective' => '272','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '170','fk_objective' => '273','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '171','fk_objective' => '274','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '172','fk_objective' => '275','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '173','fk_objective' => '276','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '174','fk_objective' => '277','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '175','fk_objective' => '278','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '176','fk_objective' => '279','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '177','fk_objective' => '280','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '178','fk_objective' => '281','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '179','fk_objective' => '282','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '180','fk_objective' => '283','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '181','fk_objective' => '284','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '182','fk_objective' => '285','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '183','fk_objective' => '286','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '184','fk_objective' => '287','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '185','fk_objective' => '288','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '186','fk_objective' => '289','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '187','fk_objective' => '290','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '188','fk_objective' => '291','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '189','fk_objective' => '292','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '190','fk_objective' => '293','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '191','fk_objective' => '294','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '192','fk_objective' => '295','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '193','fk_objective' => '296','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '194','fk_objective' => '297','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '195','fk_objective' => '298','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '196','fk_objective' => '299','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '197','fk_objective' => '300','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '198','fk_objective' => '301','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '199','fk_objective' => '302','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '200','fk_objective' => '303','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '201','fk_objective' => '304','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '202','fk_objective' => '305','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '203','fk_objective' => '306','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '204','fk_objective' => '307','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '205','fk_objective' => '308','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '206','fk_objective' => '309','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '207','fk_objective' => '310','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '208','fk_objective' => '311','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '209','fk_objective' => '312','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '210','fk_objective' => '313','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '211','fk_objective' => '314','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '212','fk_objective' => '315','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '213','fk_objective' => '316','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '214','fk_objective' => '317','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '215','fk_objective' => '318','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '216','fk_objective' => '319','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '217','fk_objective' => '320','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '218','fk_objective' => '321','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '219','fk_objective' => '322','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '220','fk_objective' => '323','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '221','fk_objective' => '324','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '222','fk_objective' => '325','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '223','fk_objective' => '326','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '224','fk_objective' => '327','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '225','fk_objective' => '328','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '226','fk_objective' => '329','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '227','fk_objective' => '330','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '228','fk_objective' => '331','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '229','fk_objective' => '332','fk_user_course' => '3','fk_acquisition_level' => '1') + ); + foreach ($acquisition_status as $acquisitionStatuse){ $this->db->table('acquisition_status')->insert($acquisitionStatuse); } diff --git a/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php index 22bf5ca2..ea5190fc 100644 --- a/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php +++ b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php @@ -11,212 +11,30 @@ class addCompetenceDomainDatas extends Seeder public function run() { //Competence domain// - $competence_domains=[ - array ( - 'id' => '1', - 'fk_course_plan' => '1', - 'symbol' => 'A', - 'name' => 'Saisie, interprétation et mise en œuvre des exigences des applications', - 'archive' => NULL, - ), - array ( - 'id' => '2', - 'fk_course_plan' => '1', - 'symbol' => 'B', - 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_course_plan' => '1', - 'symbol' => 'C', - 'name' => 'Création et maintenance de données ainsi que de leurs structures ', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_course_plan' => '1', - 'symbol' => 'D', - 'name' => ' Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_course_plan' => '1', - 'symbol' => 'E', - 'name' => 'Travail sur des projets', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_course_plan' => '2', - 'symbol' => 'AA', - 'name' => 'Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_course_plan' => '2', - 'symbol' => 'B', - 'name' => 'Mise en service de serveurs et réseaux', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_course_plan' => '2', - 'symbol' => 'C', - 'name' => 'Garantie de l’exploitation TIC ', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_course_plan' => '2', - 'symbol' => 'D', - 'name' => 'Assistance aux utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_course_plan' => '2', - 'symbol' => 'E', - 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_course_plan' => '2', - 'symbol' => 'F', - 'name' => 'Travaux dans le cadre de projets', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_course_plan' => '3', - 'symbol' => 'A', - 'name' => 'Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_course_plan' => '3', - 'symbol' => 'B', - 'name' => 'Planification, installation, et configuration des réseaux', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_course_plan' => '3', - 'symbol' => 'C', - 'name' => 'Planification, installation, et configuration des serveurs', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_course_plan' => '3', - 'symbol' => 'D', - 'name' => 'Maintenance de réseaux et serveurs', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_course_plan' => '3', - 'symbol' => 'E', - 'name' => 'Travail sur des projets', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_course_plan' => '4', - 'symbol' => 'A', - 'name' => 'Installation, mise en service et maintenance de terminaux ICT utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_course_plan' => '4', - 'symbol' => 'B', - 'name' => 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_course_plan' => '4', - 'symbol' => 'C', - 'name' => 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_course_plan' => '4', - 'symbol' => 'D', - 'name' => 'Déroulement de travaux de support ICT', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_course_plan' => '1', - 'symbol' => 'XXX', - 'name' => 'TEST1', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_course_plan' => '1', - 'symbol' => 'vvvvvvvvv', - 'name' => 'vvvvvvvvvvvvvvvvvvvvvvvvvvv', - 'archive' => '2021-06-02 08:41:37', - ), - array ( - 'id' => '23', - 'fk_course_plan' => '1', - 'symbol' => 'vvvvvvvvv', - 'name' => 'vvvvvvv', - 'archive' => '2021-06-02 08:41:52', - ), - array ( - 'id' => '24', - 'fk_course_plan' => '1', - 'symbol' => '11', - 'name' => '11', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_course_plan' => '1', - 'symbol' => '11', - 'name' => '11', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_course_plan' => '1', - 'symbol' => 'XXX', - 'name' => 'TEST1', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_course_plan' => '1', - 'symbol' => 'ABCD', - 'name' => 'abcd', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_course_plan' => '1', - 'symbol' => 'AAA', - 'name' => 'plan', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_course_plan' => '1', - 'symbol' => 'BBB', - 'name' => 'bbb', - 'archive' => NULL, - ), - ]; - foreach ($competence_domains as $competence_domain) + $competence_domain = array( + array('id' => '1','fk_course_plan' => '1','symbol' => 'A','name' => 'Saisie, interprétation et mise en œuvre des exigences des applications','archive' => NULL), + array('id' => '2','fk_course_plan' => '1','symbol' => 'B','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '3','fk_course_plan' => '1','symbol' => 'C','name' => 'Création et maintenance de données ainsi que de leurs structures ','archive' => NULL), + array('id' => '4','fk_course_plan' => '1','symbol' => 'D','name' => ' Mise en service d’appareils TIC','archive' => NULL), + array('id' => '5','fk_course_plan' => '1','symbol' => 'E','name' => 'Travail sur des projets','archive' => NULL), + array('id' => '6','fk_course_plan' => '2','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '7','fk_course_plan' => '2','symbol' => 'B','name' => 'Mise en service de serveurs et réseaux','archive' => NULL), + array('id' => '8','fk_course_plan' => '2','symbol' => 'C','name' => 'Garantie de l’exploitation TIC ','archive' => NULL), + array('id' => '9','fk_course_plan' => '2','symbol' => 'D','name' => 'Assistance aux utilisateurs','archive' => NULL), + array('id' => '10','fk_course_plan' => '2','symbol' => 'E','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '11','fk_course_plan' => '2','symbol' => 'F','name' => 'Travaux dans le cadre de projets','archive' => NULL), + array('id' => '12','fk_course_plan' => '3','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '13','fk_course_plan' => '3','symbol' => 'B','name' => 'Planification, installation, et configuration des réseaux','archive' => NULL), + array('id' => '14','fk_course_plan' => '3','symbol' => 'C','name' => 'Planification, installation, et configuration des serveurs','archive' => NULL), + array('id' => '15','fk_course_plan' => '3','symbol' => 'D','name' => 'Maintenance de réseaux et serveurs','archive' => NULL), + array('id' => '16','fk_course_plan' => '3','symbol' => 'E','name' => 'Travail sur des projets','archive' => NULL), + array('id' => '17','fk_course_plan' => '4','symbol' => 'A','name' => 'Installation, mise en service et maintenance de terminaux ICT utilisateurs','archive' => NULL), + array('id' => '18','fk_course_plan' => '4','symbol' => 'B','name' => 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau','archive' => NULL), + array('id' => '19','fk_course_plan' => '4','symbol' => 'C','name' => 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT','archive' => NULL), + array('id' => '20','fk_course_plan' => '4','symbol' => 'D','name' => 'Déroulement de travaux de support ICT','archive' => NULL) + ); + + foreach ($competence_domain as $competence_domain) $this->db->table('competence_domain')->insert($competence_domain); } diff --git a/orif/plafor/Database/Seeds/addCoursePlanDatas.php b/orif/plafor/Database/Seeds/addCoursePlanDatas.php index 10277959..0fe256ba 100644 --- a/orif/plafor/Database/Seeds/addCoursePlanDatas.php +++ b/orif/plafor/Database/Seeds/addCoursePlanDatas.php @@ -11,72 +11,14 @@ class addCoursePlanDatas extends Seeder public function run() { //course_plan// - $course_plans=[ - array ( - 'id' => '1', - 'formation_number' => '88601', - 'official_name' => ' Informaticien/-ne CFC Développement d\'applications', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '2', - 'formation_number' => '88602', - 'official_name' => ' Informaticien/-ne CFC Informatique d\'entreprise', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'formation_number' => '88603', - 'official_name' => ' Informaticien/-ne CFC Technique des systèmes', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'formation_number' => '88605', - 'official_name' => ' Opératrice en informatique / Opérateur en informatique CFC', - 'date_begin' => '2018-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'formation_number' => '123', - 'official_name' => 'tester', - 'date_begin' => '2021-06-02', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'formation_number' => '12', - 'official_name' => 'a', - 'date_begin' => '2021-06-07', - 'archive' => '2021-06-07 13:49:26', - ), - array ( - 'id' => '7', - 'formation_number' => '145', - 'official_name' => 'qwertz', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'formation_number' => '2211', - 'official_name' => 'dada', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'formation_number' => '12341', - 'official_name' => 'asaasassa', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - ]; - foreach ($course_plans as $course_plan){ + $course_plan = array( + array('id' => '1','formation_number' => '88601','official_name' => ' Informaticien/-ne CFC Développement d\'applications','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '2','formation_number' => '88602','official_name' => ' Informaticien/-ne CFC Informatique d\'entreprise','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '3','formation_number' => '88603','official_name' => ' Informaticien/-ne CFC Technique des systèmes','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '4','formation_number' => '88605','official_name' => ' Opératrice en informatique / Opérateur en informatique CFC','date_begin' => '2018-08-01','archive' => NULL) + ); + + foreach ($course_plan as $course_plan){ $this->db->table('course_plan')->insert($course_plan); } } diff --git a/orif/plafor/Database/Seeds/addObjectiveDatas.php b/orif/plafor/Database/Seeds/addObjectiveDatas.php index 315b37c8..ef95e0d7 100644 --- a/orif/plafor/Database/Seeds/addObjectiveDatas.php +++ b/orif/plafor/Database/Seeds/addObjectiveDatas.php @@ -11,2660 +11,339 @@ class addObjectiveDatas extends Seeder public function run() { //objectives// - $objectives=[ - array ( - 'id' => '1', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences', - 'archive' => '2021-06-14 12:41:06', - ), - array ( - 'id' => '2', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.4', - 'taxonomy' => '4', - 'name' => 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.5', - 'taxonomy' => '4', - 'name' => 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.3', - 'taxonomy' => '4', - 'name' => 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.2', - 'taxonomy' => '3', - 'name' => 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Obtenir la confirmation et la distribution du mandat du client', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.1', - 'taxonomy' => '5', - 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.2', - 'taxonomy' => '5', - 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.5', - 'taxonomy' => '3', - 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.6', - 'taxonomy' => '4', - 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.7', - 'taxonomy' => '4', - 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.1', - 'taxonomy' => '4', - 'name' => 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.2', - 'taxonomy' => '4', - 'name' => 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions', - 'archive' => NULL, - ), - array ( - 'id' => '23', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.1', - 'taxonomy' => '4', - 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ', - 'archive' => NULL, - ), - array ( - 'id' => '24', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluation des modes de déroulement et des applications appropriées', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.3', - 'taxonomy' => '4', - 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Utiliser des standards et processus de développement', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.6', - 'taxonomy' => '3', - 'name' => 'Respecter la convention des codes', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.7', - 'taxonomy' => '3', - 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '30', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.8', - 'taxonomy' => '3', - 'name' => 'Tester l’application et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '31', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.1', - 'taxonomy' => '4', - 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', - 'archive' => NULL, - ), - array ( - 'id' => '32', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.2', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', - 'archive' => NULL, - ), - array ( - 'id' => '33', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.3', - 'taxonomy' => '3', - 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', - 'archive' => NULL, - ), - array ( - 'id' => '34', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.4', - 'taxonomy' => '3', - 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', - 'archive' => NULL, - ), - array ( - 'id' => '35', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.5', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', - 'archive' => NULL, - ), - array ( - 'id' => '36', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.6', - 'taxonomy' => '3', - 'name' => 'Tester l’application de manière exhaustive et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '37', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.1', - 'taxonomy' => '3', - 'name' => 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout', - 'archive' => NULL, - ), - array ( - 'id' => '38', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.2', - 'taxonomy' => '3', - 'name' => 'Respecter les standards', - 'archive' => NULL, - ), - array ( - 'id' => '39', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.3', - 'taxonomy' => '4', - 'name' => 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation', - 'archive' => NULL, - ), - array ( - 'id' => '40', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.4', - 'taxonomy' => '4', - 'name' => 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '41', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.1', - 'taxonomy' => '4', - 'name' => 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin', - 'archive' => NULL, - ), - array ( - 'id' => '42', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.2', - 'taxonomy' => '3', - 'name' => 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '43', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.3', - 'taxonomy' => '3', - 'name' => 'Préparer la remise de la production', - 'archive' => NULL, - ), - array ( - 'id' => '44', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.4', - 'taxonomy' => '3', - 'name' => 'Organiser en temps voulu l’instruction et l’information des utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '45', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.1', - 'taxonomy' => '4', - 'name' => 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)', - 'archive' => NULL, - ), - array ( - 'id' => '46', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.2', - 'taxonomy' => '4', - 'name' => 'Décrire des entités et déterminer des types de données', - 'archive' => NULL, - ), - array ( - 'id' => '47', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.3', - 'taxonomy' => '4', - 'name' => 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '48', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.4', - 'taxonomy' => '4', - 'name' => 'Formuler des données adéquates de test (tenir compte des conditions limites)', - 'archive' => NULL, - ), - array ( - 'id' => '49', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.1', - 'taxonomy' => '4', - 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', - 'archive' => NULL, - ), - array ( - 'id' => '50', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.2', - 'taxonomy' => '4', - 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', - 'archive' => NULL, - ), - array ( - 'id' => '51', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.3', - 'taxonomy' => '4', - 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '52', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', - 'archive' => NULL, - ), - array ( - 'id' => '53', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.5', - 'taxonomy' => '4', - 'name' => 'Planifier et exécuter la migration de données', - 'archive' => NULL, - ), - array ( - 'id' => '54', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.1', - 'taxonomy' => '3', - 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '55', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', - 'archive' => NULL, - ), - array ( - 'id' => '56', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.3', - 'taxonomy' => '4', - 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', - 'archive' => NULL, - ), - array ( - 'id' => '57', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.4', - 'taxonomy' => '4', - 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '58', - 'fk_operational_competence' => '13', - 'symbol' => 'D.1.1', - 'taxonomy' => '3', - 'name' => 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises', - 'archive' => NULL, - ), - array ( - 'id' => '59', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.1', - 'taxonomy' => '4', - 'name' => 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail', - 'archive' => NULL, - ), - array ( - 'id' => '60', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '61', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail', - 'archive' => NULL, - ), - array ( - 'id' => '62', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.4', - 'taxonomy' => '4', - 'name' => 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter', - 'archive' => NULL, - ), - array ( - 'id' => '63', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards', - 'archive' => NULL, - ), - array ( - 'id' => '64', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.6', - 'taxonomy' => '4', - 'name' => 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique', - 'archive' => NULL, - ), - array ( - 'id' => '65', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Assurer la remontée des données du client, des tests et systèmes, etc', - 'archive' => NULL, - ), - array ( - 'id' => '66', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.1', - 'taxonomy' => '3', - 'name' => 'Présenter les méthodes de gestion de projets de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '67', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.2', - 'taxonomy' => '4', - 'name' => 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources', - 'archive' => NULL, - ), - array ( - 'id' => '68', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.3', - 'taxonomy' => '3', - 'name' => 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter', - 'archive' => NULL, - ), - array ( - 'id' => '69', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Présenter et démontrer des solutions', - 'archive' => NULL, - ), - array ( - 'id' => '70', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.5', - 'taxonomy' => '4', - 'name' => 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)', - 'archive' => NULL, - ), - array ( - 'id' => '71', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.6', - 'taxonomy' => '4', - 'name' => 'Refléter le travail du projet et assurer le transfert des connaissances', - 'archive' => NULL, - ), - array ( - 'id' => '72', - 'fk_operational_competence' => '16', - 'symbol' => 'E.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '73', - 'fk_operational_competence' => '16', - 'symbol' => 'E.3.2', - 'taxonomy' => '5', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '74', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '75', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '76', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '77', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', - 'archive' => NULL, - ), - array ( - 'id' => '78', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', - 'archive' => NULL, - ), - array ( - 'id' => '79', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.6', - 'taxonomy' => '3', - 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '80', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.7', - 'taxonomy' => '6', - 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '81', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)', - 'archive' => NULL, - ), - array ( - 'id' => '82', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '83', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.3', - 'taxonomy' => '3', - 'name' => 'Acquérir le matériel, les logiciels et les licences', - 'archive' => NULL, - ), - array ( - 'id' => '84', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données', - 'archive' => NULL, - ), - array ( - 'id' => '85', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation', - 'archive' => NULL, - ), - array ( - 'id' => '86', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '87', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '88', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '89', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '90', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.5', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils', - 'archive' => NULL, - ), - array ( - 'id' => '91', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.1', - 'taxonomy' => '4', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', - 'archive' => NULL, - ), - array ( - 'id' => '92', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.2', - 'taxonomy' => '3', - 'name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '93', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '94', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.1', - 'taxonomy' => '4', - 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', - 'archive' => NULL, - ), - array ( - 'id' => '95', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.2', - 'taxonomy' => '4', - 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '96', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', - 'archive' => NULL, - ), - array ( - 'id' => '97', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Visualiser et documenter les réseaux et leur topologie', - 'archive' => NULL, - ), - array ( - 'id' => '98', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.1', - 'taxonomy' => '4', - 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', - 'archive' => NULL, - ), - array ( - 'id' => '99', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.2', - 'taxonomy' => '4', - 'name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie', - 'archive' => NULL, - ), - array ( - 'id' => '100', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '101', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', - 'archive' => NULL, - ), - array ( - 'id' => '102', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.1', - 'taxonomy' => '3', - 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', - 'archive' => NULL, - ), - array ( - 'id' => '103', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.2', - 'taxonomy' => '3', - 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '104', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.3', - 'taxonomy' => '4', - 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '105', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', - 'archive' => NULL, - ), - array ( - 'id' => '106', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.5', - 'taxonomy' => '3', - 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', - 'archive' => NULL, - ), - array ( - 'id' => '107', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.1', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', - 'archive' => NULL, - ), - array ( - 'id' => '108', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.2', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', - 'archive' => NULL, - ), - array ( - 'id' => '109', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '110', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', - 'archive' => NULL, - ), - array ( - 'id' => '111', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes', - 'archive' => NULL, - ), - array ( - 'id' => '112', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '113', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', - 'archive' => NULL, - ), - array ( - 'id' => '114', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '115', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité', - 'archive' => NULL, - ), - array ( - 'id' => '116', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '117', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.2', - 'taxonomy' => '4', - 'name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', - 'archive' => NULL, - ), - array ( - 'id' => '118', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.3', - 'taxonomy' => '3', - 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '119', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', - 'archive' => NULL, - ), - array ( - 'id' => '120', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.1', - 'taxonomy' => '4', - 'name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils', - 'archive' => NULL, - ), - array ( - 'id' => '121', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.2', - 'taxonomy' => '3', - 'name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)', - 'archive' => NULL, - ), - array ( - 'id' => '122', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.3', - 'taxonomy' => '3', - 'name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '123', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer la documentation pour les utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '124', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème', - 'archive' => NULL, - ), - array ( - 'id' => '125', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques', - 'archive' => NULL, - ), - array ( - 'id' => '126', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils', - 'archive' => NULL, - ), - array ( - 'id' => '127', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.4', - 'taxonomy' => '3', - 'name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '128', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.1', - 'taxonomy' => '3', - 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '129', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.2', - 'taxonomy' => '4', - 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', - 'archive' => NULL, - ), - array ( - 'id' => '130', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', - 'archive' => NULL, - ), - array ( - 'id' => '131', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', - 'archive' => NULL, - ), - array ( - 'id' => '132', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', - 'archive' => NULL, - ), - array ( - 'id' => '133', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.6', - 'taxonomy' => '3', - 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', - 'archive' => NULL, - ), - array ( - 'id' => '134', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', - 'archive' => NULL, - ), - array ( - 'id' => '135', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.1', - 'taxonomy' => '4', - 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc', - 'archive' => NULL, - ), - array ( - 'id' => '136', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.2', - 'taxonomy' => '4', - 'name' => 'Evaluation des modes de déroulement et des applications appropriées', - 'archive' => NULL, - ), - array ( - 'id' => '137', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.3', - 'taxonomy' => '4', - 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue', - 'archive' => NULL, - ), - array ( - 'id' => '138', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Utiliser des standards et processus de développement', - 'archive' => NULL, - ), - array ( - 'id' => '139', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.5', - 'taxonomy' => '3', - 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns', - 'archive' => NULL, - ), - array ( - 'id' => '140', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.6', - 'taxonomy' => '3', - 'name' => 'Respecter la convention des codes', - 'archive' => NULL, - ), - array ( - 'id' => '141', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.7', - 'taxonomy' => '3', - 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '142', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.8', - 'taxonomy' => '3', - 'name' => 'Tester l’application et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '143', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.1', - 'taxonomy' => '4', - 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', - 'archive' => NULL, - ), - array ( - 'id' => '144', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.2', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', - 'archive' => NULL, - ), - array ( - 'id' => '145', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.3', - 'taxonomy' => '3', - 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', - 'archive' => NULL, - ), - array ( - 'id' => '146', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.4', - 'taxonomy' => '3', - 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', - 'archive' => NULL, - ), - array ( - 'id' => '147', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.5', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', - 'archive' => NULL, - ), - array ( - 'id' => '148', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.6', - 'taxonomy' => '3', - 'name' => 'Tester l’application de manière exhaustive et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '149', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.1', - 'taxonomy' => '4', - 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', - 'archive' => NULL, - ), - array ( - 'id' => '150', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.2', - 'taxonomy' => '3', - 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', - 'archive' => NULL, - ), - array ( - 'id' => '151', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.3', - 'taxonomy' => '3', - 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '152', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.4', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', - 'archive' => NULL, - ), - array ( - 'id' => '153', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.5', - 'taxonomy' => '4', - 'name' => 'Planifier et exécuter la migration de données', - 'archive' => NULL, - ), - array ( - 'id' => '154', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.1', - 'taxonomy' => '3', - 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '155', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.2', - 'taxonomy' => '3', - 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', - 'archive' => NULL, - ), - array ( - 'id' => '156', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.3', - 'taxonomy' => '3', - 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', - 'archive' => NULL, - ), - array ( - 'id' => '157', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.4', - 'taxonomy' => '4', - 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '158', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.1', - 'taxonomy' => '3', - 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '159', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '160', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.3', - 'taxonomy' => '3', - 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', - 'archive' => NULL, - ), - array ( - 'id' => '161', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.4', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', - 'archive' => NULL, - ), - array ( - 'id' => '162', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.5', - 'taxonomy' => '3', - 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', - 'archive' => NULL, - ), - array ( - 'id' => '163', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.6', - 'taxonomy' => '3', - 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', - 'archive' => NULL, - ), - array ( - 'id' => '164', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.7', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', - 'archive' => NULL, - ), - array ( - 'id' => '165', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.1', - 'taxonomy' => '4', - 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', - 'archive' => NULL, - ), - array ( - 'id' => '166', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.2', - 'taxonomy' => '3', - 'name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', - 'archive' => NULL, - ), - array ( - 'id' => '167', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.3', - 'taxonomy' => '3', - 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', - 'archive' => NULL, - ), - array ( - 'id' => '168', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.4', - 'taxonomy' => '3', - 'name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '169', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.5', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', - 'archive' => NULL, - ), - array ( - 'id' => '170', - 'fk_operational_competence' => '36', - 'symbol' => 'F.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '171', - 'fk_operational_competence' => '36', - 'symbol' => 'F.3.2', - 'taxonomy' => '3', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '177', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '178', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '179', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '180', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', - 'archive' => NULL, - ), - array ( - 'id' => '181', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', - 'archive' => NULL, - ), - array ( - 'id' => '182', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.6', - 'taxonomy' => '3', - 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '183', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.7', - 'taxonomy' => '3', - 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '184', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.8', - 'taxonomy' => '4', - 'name' => 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '185', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre -(organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '186', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Choisir le matériel et logiciels appropriés en tenant compte -des directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '187', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.3', - 'taxonomy' => '4', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', - 'archive' => NULL, - ), - array ( - 'id' => '188', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '189', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '190', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '191', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '192', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau', - 'archive' => NULL, - ), - array ( - 'id' => '193', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.4', - 'taxonomy' => '3', - 'name' => ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '194', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.1', - 'taxonomy' => '4', - 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', - 'archive' => NULL, - ), - array ( - 'id' => '195', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.2', - 'taxonomy' => '4', - 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '196', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', - 'archive' => NULL, - ), - array ( - 'id' => '197', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.4', - 'taxonomy' => '3', - 'name' => 'Visualiser et documenter les réseaux et leur topologie', - 'archive' => NULL, - ), - array ( - 'id' => '198', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.1', - 'taxonomy' => '3', - 'name' => 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement', - 'archive' => NULL, - ), - array ( - 'id' => '199', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.2', - 'taxonomy' => '3', - 'name' => 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre', - 'archive' => NULL, - ), - array ( - 'id' => '200', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '201', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Documenter la solution et élaborer le mode d’emploi utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '202', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.1', - 'taxonomy' => '5', - 'name' => 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)', - 'archive' => NULL, - ), - array ( - 'id' => '203', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.2', - 'taxonomy' => '5', - 'name' => 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration', - 'archive' => NULL, - ), - array ( - 'id' => '204', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité', - 'archive' => NULL, - ), - array ( - 'id' => '205', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.1', - 'taxonomy' => '5', - 'name' => 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement', - 'archive' => NULL, - ), - array ( - 'id' => '206', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.2', - 'taxonomy' => '5', - 'name' => 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup', - 'archive' => NULL, - ), - array ( - 'id' => '207', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.3', - 'taxonomy' => '3', - 'name' => 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '208', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '209', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.2', - 'taxonomy' => '4', - 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', - 'archive' => NULL, - ), - array ( - 'id' => '210', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '211', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité', - 'archive' => NULL, - ), - array ( - 'id' => '212', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.1', - 'taxonomy' => '5', - 'name' => 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '213', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.2', - 'taxonomy' => '4', - 'name' => 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '214', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus', - 'archive' => NULL, - ), - array ( - 'id' => '215', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation', - 'archive' => NULL, - ), - array ( - 'id' => '216', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '217', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', - 'archive' => NULL, - ), - array ( - 'id' => '218', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.3', - 'taxonomy' => '3', - 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '219', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', - 'archive' => NULL, - ), - array ( - 'id' => '220', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.1', - 'taxonomy' => '5', - 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', - 'archive' => NULL, - ), - array ( - 'id' => '221', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.2', - 'taxonomy' => '4', - 'name' => 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie', - 'archive' => NULL, - ), - array ( - 'id' => '222', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.3', - 'taxonomy' => '3', - 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '223', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.4', - 'taxonomy' => '3', - 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', - 'archive' => NULL, - ), - array ( - 'id' => '224', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '225', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.2', - 'taxonomy' => '4', - 'name' => 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '226', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.3', - 'taxonomy' => '3', - 'name' => 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '227', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.4', - 'taxonomy' => '3', - 'name' => 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests', - 'archive' => NULL, - ), - array ( - 'id' => '228', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.1', - 'taxonomy' => '3', - 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', - 'archive' => NULL, - ), - array ( - 'id' => '229', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.2', - 'taxonomy' => '3', - 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '230', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.3', - 'taxonomy' => '5', - 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '231', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', - 'archive' => NULL, - ), - array ( - 'id' => '232', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.5', - 'taxonomy' => '3', - 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', - 'archive' => NULL, - ), - array ( - 'id' => '233', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.6', - 'taxonomy' => '3', - 'name' => 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '234', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', - 'archive' => NULL, - ), - array ( - 'id' => '235', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', - 'archive' => NULL, - ), - array ( - 'id' => '236', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '237', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.4', - 'taxonomy' => '3', - 'name' => 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', - 'archive' => NULL, - ), - array ( - 'id' => '238', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ', - 'archive' => NULL, - ), - array ( - 'id' => '239', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.1', - 'taxonomy' => '3', - 'name' => 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '240', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.2', - 'taxonomy' => '3', - 'name' => 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils', - 'archive' => NULL, - ), - array ( - 'id' => '241', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.3', - 'taxonomy' => '3', - 'name' => 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes', - 'archive' => NULL, - ), - array ( - 'id' => '242', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.4', - 'taxonomy' => '3', - 'name' => 'Informer et instruire les utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '243', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.1', - 'taxonomy' => '3', - 'name' => 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte', - 'archive' => NULL, - ), - array ( - 'id' => '244', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.2', - 'taxonomy' => '4', - 'name' => 'Développer une solution et la présenter au supérieur ou à l’utilisateur', - 'archive' => NULL, - ), - array ( - 'id' => '245', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.3', - 'taxonomy' => '3', - 'name' => 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)', - 'archive' => NULL, - ), - array ( - 'id' => '246', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.4', - 'taxonomy' => '3', - 'name' => 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '247', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.1', - 'taxonomy' => '4', - 'name' => 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres', - 'archive' => NULL, - ), - array ( - 'id' => '248', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.2', - 'taxonomy' => '4', - 'name' => 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution', - 'archive' => NULL, - ), - array ( - 'id' => '249', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.3', - 'taxonomy' => '3', - 'name' => 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '250', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.4', - 'taxonomy' => '3', - 'name' => 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci', - 'archive' => NULL, - ), - array ( - 'id' => '251', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.5', - 'taxonomy' => '3', - 'name' => 'Informer les utilisateurs selon les besoins', - 'archive' => NULL, - ), - array ( - 'id' => '252', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.1', - 'taxonomy' => '3', - 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '253', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '254', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', - 'archive' => NULL, - ), - array ( - 'id' => '255', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.4', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', - 'archive' => NULL, - ), - array ( - 'id' => '256', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', - 'archive' => NULL, - ), - array ( - 'id' => '257', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.6', - 'taxonomy' => '3', - 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', - 'archive' => NULL, - ), - array ( - 'id' => '258', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', - 'archive' => NULL, - ), - array ( - 'id' => '259', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.8', - 'taxonomy' => '3', - 'name' => 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable', - 'archive' => NULL, - ), - array ( - 'id' => '260', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.1', - 'taxonomy' => '4', - 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', - 'archive' => NULL, - ), - array ( - 'id' => '261', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.2', - 'taxonomy' => '3', - 'name' => 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', - 'archive' => NULL, - ), - array ( - 'id' => '262', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.3', - 'taxonomy' => '3', - 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', - 'archive' => NULL, - ), - array ( - 'id' => '263', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '264', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.5', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', - 'archive' => NULL, - ), - array ( - 'id' => '265', - 'fk_operational_competence' => '61', - 'symbol' => 'E.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '266', - 'fk_operational_competence' => '61', - 'symbol' => 'E.3.2', - 'taxonomy' => '3', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '267', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.1', - 'taxonomy' => '2', - 'name' => 'Expliquent les tâches et fonctions des systèmes d’exploitation courants', - 'archive' => NULL, - ), - array ( - 'id' => '268', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '269', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Installent et configurent des appareils périphériques et leurs extensions', - 'archive' => NULL, - ), - array ( - 'id' => '270', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement', - 'archive' => NULL, - ), - array ( - 'id' => '271', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits', - 'archive' => NULL, - ), - array ( - 'id' => '272', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.6', - 'taxonomy' => '1', - 'name' => 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs', - 'archive' => NULL, - ), - array ( - 'id' => '273', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.7', - 'taxonomy' => '3', - 'name' => 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants', - 'archive' => NULL, - ), - array ( - 'id' => '274', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.8', - 'taxonomy' => '3', - 'name' => 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique', - 'archive' => NULL, - ), - array ( - 'id' => '275', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.1', - 'taxonomy' => '3', - 'name' => 'Installent et configurent des applications standards et les administrent', - 'archive' => NULL, - ), - array ( - 'id' => '276', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.2', - 'taxonomy' => '2', - 'name' => 'Actualisent les logiciels existants avec une version actuelle', - 'archive' => NULL, - ), - array ( - 'id' => '277', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.3', - 'taxonomy' => '3', - 'name' => 'Décrivent les diverses variantes de licences', - 'archive' => NULL, - ), - array ( - 'id' => '278', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Appliquent les processus de la gestion des licences', - 'archive' => NULL, - ), - array ( - 'id' => '279', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Exécutent des tests de fonctions selon directives et évaluent les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '280', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.2', - 'taxonomy' => '3', - 'name' => 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres', - 'archive' => NULL, - ), - array ( - 'id' => '281', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.3', - 'taxonomy' => '4', - 'name' => 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude', - 'archive' => NULL, - ), - array ( - 'id' => '282', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.1', - 'taxonomy' => '3', - 'name' => 'Appliquent des scripts et contrôlent leur exécution', - 'archive' => NULL, - ), - array ( - 'id' => '283', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.2', - 'taxonomy' => '4', - 'name' => 'Entreprennent des adaptations sur la fonctionnalité du script', - 'archive' => NULL, - ), - array ( - 'id' => '284', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.3', - 'taxonomy' => '3', - 'name' => 'Programment des scripts simples selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '285', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.1', - 'taxonomy' => '2', - 'name' => 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)', - 'archive' => NULL, - ), - array ( - 'id' => '286', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.2', - 'taxonomy' => '4', - 'name' => 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant', - 'archive' => NULL, - ), - array ( - 'id' => '287', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.3', - 'taxonomy' => '4', - 'name' => 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '288', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.4', - 'taxonomy' => '2', - 'name' => 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud', - 'archive' => NULL, - ), - array ( - 'id' => '289', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.1', - 'taxonomy' => '3', - 'name' => 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur', - 'archive' => NULL, - ), - array ( - 'id' => '290', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.2', - 'taxonomy' => '2', - 'name' => 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions', - 'archive' => NULL, - ), - array ( - 'id' => '291', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.3', - 'taxonomy' => '4', - 'name' => 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '292', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)', - 'archive' => NULL, - ), - array ( - 'id' => '293', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.1', - 'taxonomy' => '2', - 'name' => 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT', - 'archive' => NULL, - ), - array ( - 'id' => '294', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.2', - 'taxonomy' => '3', - 'name' => 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel', - 'archive' => NULL, - ), - array ( - 'id' => '295', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '296', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation', - 'archive' => NULL, - ), - array ( - 'id' => '297', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '298', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.1', - 'taxonomy' => '3', - 'name' => 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique', - 'archive' => NULL, - ), - array ( - 'id' => '299', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.2', - 'taxonomy' => '2', - 'name' => 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution', - 'archive' => NULL, - ), - array ( - 'id' => '300', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.3', - 'taxonomy' => '3', - 'name' => 'Appliquent les logiciels appropriés pour la réalisation de présentations', - 'archive' => NULL, - ), - array ( - 'id' => '301', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations', - 'archive' => NULL, - ), - array ( - 'id' => '302', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.5', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '303', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.1', - 'taxonomy' => '3', - 'name' => 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits', - 'archive' => NULL, - ), - array ( - 'id' => '304', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.2', - 'taxonomy' => '3', - 'name' => 'Appliquent des directives et modèles de documentation de l‘entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '305', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '306', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.4', - 'taxonomy' => '4', - 'name' => 'Trient l’indispensable du superflu et fixent les bonnes priorités', - 'archive' => NULL, - ), - array ( - 'id' => '307', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.5', - 'taxonomy' => '3', - 'name' => 'Élaborent des modes d’emploi compréhensibles et clairement structurés', - 'archive' => NULL, - ), - array ( - 'id' => '308', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.6', - 'taxonomy' => '3', - 'name' => 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace', - 'archive' => NULL, - ), - array ( - 'id' => '309', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.7', - 'taxonomy' => '3', - 'name' => 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation', - 'archive' => NULL, - ), - array ( - 'id' => '310', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.1', - 'taxonomy' => '3', - 'name' => 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition', - 'archive' => NULL, - ), - array ( - 'id' => '311', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.2', - 'taxonomy' => '3', - 'name' => 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée', - 'archive' => NULL, - ), - array ( - 'id' => '312', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.3', - 'taxonomy' => '4', - 'name' => 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent', - 'archive' => NULL, - ), - array ( - 'id' => '313', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient', - 'archive' => NULL, - ), - array ( - 'id' => '314', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.5', - 'taxonomy' => '3', - 'name' => 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '315', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.1', - 'taxonomy' => '2', - 'name' => 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème', - 'archive' => NULL, - ), - array ( - 'id' => '316', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.2', - 'taxonomy' => '4', - 'name' => 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '317', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.3', - 'taxonomy' => '3', - 'name' => 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement', - 'archive' => NULL, - ), - array ( - 'id' => '318', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions', - 'archive' => NULL, - ), - array ( - 'id' => '319', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.5', - 'taxonomy' => '3', - 'name' => 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '320', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.6', - 'taxonomy' => '2', - 'name' => 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '321', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.7', - 'taxonomy' => '3', - 'name' => 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients', - 'archive' => NULL, - ), - array ( - 'id' => '322', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée', - 'archive' => NULL, - ), - array ( - 'id' => '323', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe', - 'archive' => NULL, - ), - array ( - 'id' => '324', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe', - 'archive' => NULL, - ), - array ( - 'id' => '325', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.4', - 'taxonomy' => '2', - 'name' => 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe', - 'archive' => NULL, - ), - array ( - 'id' => '326', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.5', - 'taxonomy' => '2', - 'name' => 'Décrivent les causes et la dynamique des conflits', - 'archive' => NULL, - ), - array ( - 'id' => '327', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.6', - 'taxonomy' => '4', - 'name' => 'Décèlent à temps les situations de conflits et prend les mesures en conséquence', - 'archive' => NULL, - ), - array ( - 'id' => '328', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.1', - 'taxonomy' => '3', - 'name' => 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive', - 'archive' => NULL, - ), - array ( - 'id' => '329', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.2', - 'taxonomy' => '2', - 'name' => 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos', - 'archive' => NULL, - ), - array ( - 'id' => '330', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.3', - 'taxonomy' => '3', - 'name' => 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail', - 'archive' => NULL, - ), - array ( - 'id' => '331', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.4', - 'taxonomy' => '3', - 'name' => 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes', - 'archive' => NULL, - ), - array ( - 'id' => '332', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers', - 'archive' => NULL, - ), - array ( - 'id' => '333', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'as', - 'archive' => NULL, - ), - array ( - 'id' => '334', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'a23', - 'archive' => NULL, - ), - array ( - 'id' => '335', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'a12', - 'archive' => NULL, - ), - array ( - 'id' => '336', - 'fk_operational_competence' => '2', - 'symbol' => 'A1', - 'taxonomy' => '6', - 'name' => 'a123', - 'archive' => NULL, - ), - ]; - foreach ($objectives as $objective){ - $this->db->table('objective')->insert($objective); + $objective = array( + array('id' => '1','fk_operational_competence' => '1','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences','archive' => NULL), + array('id' => '2','fk_operational_competence' => '1','symbol' => 'A.1.2','taxonomy' => '4','name' => ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)','archive' => NULL), + array('id' => '3','fk_operational_competence' => '1','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)','archive' => NULL), + array('id' => '4','fk_operational_competence' => '1','symbol' => 'A.1.4','taxonomy' => '4','name' => 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences','archive' => NULL), + array('id' => '5','fk_operational_competence' => '1','symbol' => 'A.1.5','taxonomy' => '4','name' => 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite','archive' => NULL), + array('id' => '6','fk_operational_competence' => '2','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))','archive' => NULL), + array('id' => '7','fk_operational_competence' => '2','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles','archive' => NULL), + array('id' => '8','fk_operational_competence' => '2','symbol' => 'A.2.3','taxonomy' => '4','name' => 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation','archive' => NULL), + array('id' => '9','fk_operational_competence' => '3','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie','archive' => NULL), + array('id' => '10','fk_operational_competence' => '3','symbol' => 'A.3.2','taxonomy' => '3','name' => 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application','archive' => NULL), + array('id' => '11','fk_operational_competence' => '3','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Obtenir la confirmation et la distribution du mandat du client','archive' => NULL), + array('id' => '12','fk_operational_competence' => '4','symbol' => 'B.1.1','taxonomy' => '5','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '13','fk_operational_competence' => '4','symbol' => 'B.1.2','taxonomy' => '5','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '14','fk_operational_competence' => '4','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '15','fk_operational_competence' => '4','symbol' => 'B.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '16','fk_operational_competence' => '4','symbol' => 'B.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '17','fk_operational_competence' => '4','symbol' => 'B.1.6','taxonomy' => '4','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '18','fk_operational_competence' => '4','symbol' => 'B.1.7','taxonomy' => '4','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '19','fk_operational_competence' => '5','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)','archive' => NULL), + array('id' => '20','fk_operational_competence' => '5','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)','archive' => NULL), + array('id' => '21','fk_operational_competence' => '5','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité','archive' => NULL), + array('id' => '22','fk_operational_competence' => '5','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions','archive' => NULL), + array('id' => '23','fk_operational_competence' => '6','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ','archive' => NULL), + array('id' => '24','fk_operational_competence' => '6','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '25','fk_operational_competence' => '6','symbol' => 'B.3.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue','archive' => NULL), + array('id' => '26','fk_operational_competence' => '6','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '27','fk_operational_competence' => '6','symbol' => 'B.3.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns','archive' => NULL), + array('id' => '28','fk_operational_competence' => '6','symbol' => 'B.3.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '29','fk_operational_competence' => '6','symbol' => 'B.3.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '30','fk_operational_competence' => '6','symbol' => 'B.3.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '31','fk_operational_competence' => '7','symbol' => 'B.4.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '32','fk_operational_competence' => '7','symbol' => 'B.4.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '33','fk_operational_competence' => '7','symbol' => 'B.4.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '34','fk_operational_competence' => '7','symbol' => 'B.4.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '35','fk_operational_competence' => '7','symbol' => 'B.4.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '36','fk_operational_competence' => '7','symbol' => 'B.4.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '37','fk_operational_competence' => '8','symbol' => 'B.5.1','taxonomy' => '3','name' => 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout','archive' => NULL), + array('id' => '38','fk_operational_competence' => '8','symbol' => 'B.5.2','taxonomy' => '3','name' => 'Respecter les standards','archive' => NULL), + array('id' => '39','fk_operational_competence' => '8','symbol' => 'B.5.3','taxonomy' => '4','name' => 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation','archive' => NULL), + array('id' => '40','fk_operational_competence' => '8','symbol' => 'B.5.4','taxonomy' => '4','name' => 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité','archive' => NULL), + array('id' => '41','fk_operational_competence' => '9','symbol' => 'B.6.1','taxonomy' => '4','name' => 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin','archive' => NULL), + array('id' => '42','fk_operational_competence' => '9','symbol' => 'B.6.2','taxonomy' => '3','name' => 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires','archive' => NULL), + array('id' => '43','fk_operational_competence' => '9','symbol' => 'B.6.3','taxonomy' => '3','name' => 'Préparer la remise de la production','archive' => NULL), + array('id' => '44','fk_operational_competence' => '9','symbol' => 'B.6.4','taxonomy' => '3','name' => 'Organiser en temps voulu l’instruction et l’information des utilisateurs','archive' => NULL), + array('id' => '45','fk_operational_competence' => '10','symbol' => 'C.1.1','taxonomy' => '4','name' => 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)','archive' => NULL), + array('id' => '46','fk_operational_competence' => '10','symbol' => 'C.1.2','taxonomy' => '4','name' => 'Décrire des entités et déterminer des types de données','archive' => NULL), + array('id' => '47','fk_operational_competence' => '10','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)','archive' => NULL), + array('id' => '48','fk_operational_competence' => '10','symbol' => 'C.1.4','taxonomy' => '4','name' => 'Formuler des données adéquates de test (tenir compte des conditions limites)','archive' => NULL), + array('id' => '49','fk_operational_competence' => '11','symbol' => 'C.2.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '50','fk_operational_competence' => '11','symbol' => 'C.2.2','taxonomy' => '4','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '51','fk_operational_competence' => '11','symbol' => 'C.2.3','taxonomy' => '4','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '52','fk_operational_competence' => '11','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '53','fk_operational_competence' => '11','symbol' => 'C.2.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '54','fk_operational_competence' => '12','symbol' => 'C.3.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '55','fk_operational_competence' => '12','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '56','fk_operational_competence' => '12','symbol' => 'C.3.3','taxonomy' => '4','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '57','fk_operational_competence' => '12','symbol' => 'C.3.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '58','fk_operational_competence' => '13','symbol' => 'D.1.1','taxonomy' => '3','name' => 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises','archive' => NULL), + array('id' => '59','fk_operational_competence' => '14','symbol' => 'E.1.1','taxonomy' => '4','name' => 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail','archive' => NULL), + array('id' => '60','fk_operational_competence' => '14','symbol' => 'E.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '61','fk_operational_competence' => '14','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail','archive' => NULL), + array('id' => '62','fk_operational_competence' => '14','symbol' => 'E.1.4','taxonomy' => '4','name' => 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter','archive' => NULL), + array('id' => '63','fk_operational_competence' => '14','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards','archive' => NULL), + array('id' => '64','fk_operational_competence' => '14','symbol' => 'E.1.6','taxonomy' => '4','name' => 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique','archive' => NULL), + array('id' => '65','fk_operational_competence' => '14','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Assurer la remontée des données du client, des tests et systèmes, etc','archive' => NULL), + array('id' => '66','fk_operational_competence' => '15','symbol' => 'E.2.1','taxonomy' => '3','name' => 'Présenter les méthodes de gestion de projets de l’entreprise','archive' => NULL), + array('id' => '67','fk_operational_competence' => '15','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources','archive' => NULL), + array('id' => '68','fk_operational_competence' => '15','symbol' => 'E.2.3','taxonomy' => '3','name' => 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter','archive' => NULL), + array('id' => '69','fk_operational_competence' => '15','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Présenter et démontrer des solutions','archive' => NULL), + array('id' => '70','fk_operational_competence' => '15','symbol' => 'E.2.5','taxonomy' => '4','name' => 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)','archive' => NULL), + array('id' => '71','fk_operational_competence' => '15','symbol' => 'E.2.6','taxonomy' => '4','name' => 'Refléter le travail du projet et assurer le transfert des connaissances','archive' => NULL), + array('id' => '72','fk_operational_competence' => '16','symbol' => 'E.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '73','fk_operational_competence' => '16','symbol' => 'E.3.2','taxonomy' => '5','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '74','fk_operational_competence' => '17','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '75','fk_operational_competence' => '17','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires','archive' => NULL), + array('id' => '76','fk_operational_competence' => '17','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '77','fk_operational_competence' => '17','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '78','fk_operational_competence' => '17','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '79','fk_operational_competence' => '17','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '80','fk_operational_competence' => '17','symbol' => 'A.1.7','taxonomy' => '6','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '81','fk_operational_competence' => '18','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)','archive' => NULL), + array('id' => '82','fk_operational_competence' => '18','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur','archive' => NULL), + array('id' => '83','fk_operational_competence' => '18','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Acquérir le matériel, les logiciels et les licences','archive' => NULL), + array('id' => '84','fk_operational_competence' => '18','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données','archive' => NULL), + array('id' => '85','fk_operational_competence' => '18','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation','archive' => NULL), + array('id' => '86','fk_operational_competence' => '19','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '87','fk_operational_competence' => '19','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur','archive' => NULL), + array('id' => '88','fk_operational_competence' => '19','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)','archive' => NULL), + array('id' => '89','fk_operational_competence' => '19','symbol' => 'A.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '90','fk_operational_competence' => '19','symbol' => 'A.3.5','taxonomy' => '3','name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils','archive' => NULL), + array('id' => '91','fk_operational_competence' => '20','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '92','fk_operational_competence' => '20','symbol' => 'B.1.2','taxonomy' => '3','name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '93','fk_operational_competence' => '20','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '94','fk_operational_competence' => '21','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '95','fk_operational_competence' => '21','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '96','fk_operational_competence' => '21','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '97','fk_operational_competence' => '21','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '98','fk_operational_competence' => '22','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '99','fk_operational_competence' => '22','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '100','fk_operational_competence' => '22','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '101','fk_operational_competence' => '22','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '102','fk_operational_competence' => '23','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '103','fk_operational_competence' => '23','symbol' => 'C.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '104','fk_operational_competence' => '23','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '105','fk_operational_competence' => '23','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '106','fk_operational_competence' => '23','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '107','fk_operational_competence' => '24','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '108','fk_operational_competence' => '24','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '109','fk_operational_competence' => '24','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '110','fk_operational_competence' => '24','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '111','fk_operational_competence' => '24','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes','archive' => NULL), + array('id' => '112','fk_operational_competence' => '25','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '113','fk_operational_competence' => '25','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '114','fk_operational_competence' => '25','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '115','fk_operational_competence' => '25','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '116','fk_operational_competence' => '26','symbol' => 'C.4.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '117','fk_operational_competence' => '26','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '118','fk_operational_competence' => '26','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '119','fk_operational_competence' => '26','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '120','fk_operational_competence' => '27','symbol' => 'D.1.1','taxonomy' => '4','name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils','archive' => NULL), + array('id' => '121','fk_operational_competence' => '27','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)','archive' => NULL), + array('id' => '122','fk_operational_competence' => '27','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '123','fk_operational_competence' => '27','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Elaborer la documentation pour les utilisateurs','archive' => NULL), + array('id' => '124','fk_operational_competence' => '28','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème','archive' => NULL), + array('id' => '125','fk_operational_competence' => '28','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques','archive' => NULL), + array('id' => '126','fk_operational_competence' => '28','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils','archive' => NULL), + array('id' => '127','fk_operational_competence' => '28','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '128','fk_operational_competence' => '29','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '129','fk_operational_competence' => '29','symbol' => 'E.1.2','taxonomy' => '4','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '130','fk_operational_competence' => '29','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '131','fk_operational_competence' => '29','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '132','fk_operational_competence' => '29','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '133','fk_operational_competence' => '29','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '134','fk_operational_competence' => '29','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '135','fk_operational_competence' => '30','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc','archive' => NULL), + array('id' => '136','fk_operational_competence' => '30','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '137','fk_operational_competence' => '30','symbol' => 'E.2.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue','archive' => NULL), + array('id' => '138','fk_operational_competence' => '30','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '139','fk_operational_competence' => '30','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns','archive' => NULL), + array('id' => '140','fk_operational_competence' => '30','symbol' => 'E.2.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '141','fk_operational_competence' => '30','symbol' => 'E.2.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '142','fk_operational_competence' => '30','symbol' => 'E.2.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '143','fk_operational_competence' => '31','symbol' => 'E.3.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '144','fk_operational_competence' => '31','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '145','fk_operational_competence' => '31','symbol' => 'E.3.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '146','fk_operational_competence' => '31','symbol' => 'E.3.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '147','fk_operational_competence' => '31','symbol' => 'E.3.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '148','fk_operational_competence' => '31','symbol' => 'E.3.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '149','fk_operational_competence' => '32','symbol' => 'E.4.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '150','fk_operational_competence' => '32','symbol' => 'E.4.2','taxonomy' => '3','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '151','fk_operational_competence' => '32','symbol' => 'E.4.3','taxonomy' => '3','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '152','fk_operational_competence' => '32','symbol' => 'E.4.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '153','fk_operational_competence' => '32','symbol' => 'E.4.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '154','fk_operational_competence' => '33','symbol' => 'E.5.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '155','fk_operational_competence' => '33','symbol' => 'E.5.2','taxonomy' => '3','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '156','fk_operational_competence' => '33','symbol' => 'E.5.3','taxonomy' => '3','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '157','fk_operational_competence' => '33','symbol' => 'E.5.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '158','fk_operational_competence' => '34','symbol' => 'F.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '159','fk_operational_competence' => '34','symbol' => 'F.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '160','fk_operational_competence' => '34','symbol' => 'F.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '161','fk_operational_competence' => '34','symbol' => 'F.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '162','fk_operational_competence' => '34','symbol' => 'F.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '163','fk_operational_competence' => '34','symbol' => 'F.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '164','fk_operational_competence' => '34','symbol' => 'F.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '165','fk_operational_competence' => '35','symbol' => 'F.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '166','fk_operational_competence' => '35','symbol' => 'F.2.2','taxonomy' => '3','name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '167','fk_operational_competence' => '35','symbol' => 'F.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '168','fk_operational_competence' => '35','symbol' => 'F.2.4','taxonomy' => '3','name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '169','fk_operational_competence' => '35','symbol' => 'F.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '170','fk_operational_competence' => '36','symbol' => 'F.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '171','fk_operational_competence' => '36','symbol' => 'F.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '177','fk_operational_competence' => '42','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '178','fk_operational_competence' => '42','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur','archive' => NULL), + array('id' => '179','fk_operational_competence' => '42','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '180','fk_operational_competence' => '42','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '181','fk_operational_competence' => '42','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '182','fk_operational_competence' => '42','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '183','fk_operational_competence' => '42','symbol' => 'A.1.7','taxonomy' => '3','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '184','fk_operational_competence' => '42','symbol' => 'A.1.8','taxonomy' => '4','name' => 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)','archive' => NULL), + array('id' => '185','fk_operational_competence' => '43','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Accueillir le mandat du client et planifier la mise en œuvre +(organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '186','fk_operational_competence' => '43','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Choisir le matériel et logiciels appropriés en tenant compte +des directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur','archive' => NULL), + array('id' => '187','fk_operational_competence' => '43','symbol' => 'A.2.3','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '188','fk_operational_competence' => '43','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '189','fk_operational_competence' => '43','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '190','fk_operational_competence' => '44','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '191','fk_operational_competence' => '44','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur','archive' => NULL), + array('id' => '192','fk_operational_competence' => '44','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau','archive' => NULL), + array('id' => '193','fk_operational_competence' => '44','symbol' => 'A.3.4','taxonomy' => '3','name' => ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats','archive' => NULL), + array('id' => '194','fk_operational_competence' => '45','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '195','fk_operational_competence' => '45','symbol' => 'B.1.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '196','fk_operational_competence' => '45','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '197','fk_operational_competence' => '45','symbol' => 'B.1.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '198','fk_operational_competence' => '46','symbol' => 'B.2.1','taxonomy' => '3','name' => 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement','archive' => NULL), + array('id' => '199','fk_operational_competence' => '46','symbol' => 'B.2.2','taxonomy' => '3','name' => 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre','archive' => NULL), + array('id' => '200','fk_operational_competence' => '46','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités','archive' => NULL), + array('id' => '201','fk_operational_competence' => '46','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Documenter la solution et élaborer le mode d’emploi utilisateurs','archive' => NULL), + array('id' => '202','fk_operational_competence' => '47','symbol' => 'B.3.1','taxonomy' => '5','name' => 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)','archive' => NULL), + array('id' => '203','fk_operational_competence' => '47','symbol' => 'B.3.2','taxonomy' => '5','name' => 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration','archive' => NULL), + array('id' => '204','fk_operational_competence' => '47','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité','archive' => NULL), + array('id' => '205','fk_operational_competence' => '48','symbol' => 'B.4.1','taxonomy' => '5','name' => 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement','archive' => NULL), + array('id' => '206','fk_operational_competence' => '48','symbol' => 'B.4.2','taxonomy' => '5','name' => 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup','archive' => NULL), + array('id' => '207','fk_operational_competence' => '48','symbol' => 'B.4.3','taxonomy' => '3','name' => 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats','archive' => NULL), + array('id' => '208','fk_operational_competence' => '49','symbol' => 'C.1.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '209','fk_operational_competence' => '49','symbol' => 'C.1.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '210','fk_operational_competence' => '49','symbol' => 'C.1.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '211','fk_operational_competence' => '49','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '212','fk_operational_competence' => '50','symbol' => 'C.2.1','taxonomy' => '5','name' => 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '213','fk_operational_competence' => '50','symbol' => 'C.2.2','taxonomy' => '4','name' => 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès','archive' => NULL), + array('id' => '214','fk_operational_competence' => '50','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus','archive' => NULL), + array('id' => '215','fk_operational_competence' => '50','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation','archive' => NULL), + array('id' => '216','fk_operational_competence' => '51','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '217','fk_operational_competence' => '51','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '218','fk_operational_competence' => '51','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '219','fk_operational_competence' => '51','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '220','fk_operational_competence' => '52','symbol' => 'C.4.1','taxonomy' => '5','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '221','fk_operational_competence' => '52','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '222','fk_operational_competence' => '52','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '223','fk_operational_competence' => '52','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '224','fk_operational_competence' => '53','symbol' => 'C.5.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '225','fk_operational_competence' => '53','symbol' => 'C.5.2','taxonomy' => '4','name' => 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès','archive' => NULL), + array('id' => '226','fk_operational_competence' => '53','symbol' => 'C.5.3','taxonomy' => '3','name' => 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité','archive' => NULL), + array('id' => '227','fk_operational_competence' => '53','symbol' => 'C.5.4','taxonomy' => '3','name' => 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests','archive' => NULL), + array('id' => '228','fk_operational_competence' => '54','symbol' => 'D.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '229','fk_operational_competence' => '54','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '230','fk_operational_competence' => '54','symbol' => 'D.1.3','taxonomy' => '5','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '231','fk_operational_competence' => '54','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '232','fk_operational_competence' => '54','symbol' => 'D.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '233','fk_operational_competence' => '54','symbol' => 'D.1.6','taxonomy' => '3','name' => 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats','archive' => NULL), + array('id' => '234','fk_operational_competence' => '55','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '235','fk_operational_competence' => '55','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '236','fk_operational_competence' => '55','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '237','fk_operational_competence' => '55','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '238','fk_operational_competence' => '55','symbol' => 'D.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ','archive' => NULL), + array('id' => '239','fk_operational_competence' => '56','symbol' => 'D.3.1','taxonomy' => '3','name' => 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité','archive' => NULL), + array('id' => '240','fk_operational_competence' => '56','symbol' => 'D.3.2','taxonomy' => '3','name' => 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils','archive' => NULL), + array('id' => '241','fk_operational_competence' => '56','symbol' => 'D.3.3','taxonomy' => '3','name' => 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes','archive' => NULL), + array('id' => '242','fk_operational_competence' => '56','symbol' => 'D.3.4','taxonomy' => '3','name' => 'Informer et instruire les utilisateurs','archive' => NULL), + array('id' => '243','fk_operational_competence' => '57','symbol' => 'D.4.1','taxonomy' => '3','name' => 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte','archive' => NULL), + array('id' => '244','fk_operational_competence' => '57','symbol' => 'D.4.2','taxonomy' => '4','name' => 'Développer une solution et la présenter au supérieur ou à l’utilisateur','archive' => NULL), + array('id' => '245','fk_operational_competence' => '57','symbol' => 'D.4.3','taxonomy' => '3','name' => 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)','archive' => NULL), + array('id' => '246','fk_operational_competence' => '57','symbol' => 'D.4.4','taxonomy' => '3','name' => 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités','archive' => NULL), + array('id' => '247','fk_operational_competence' => '58','symbol' => 'D.5.1','taxonomy' => '4','name' => 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres','archive' => NULL), + array('id' => '248','fk_operational_competence' => '58','symbol' => 'D.5.2','taxonomy' => '4','name' => 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution','archive' => NULL), + array('id' => '249','fk_operational_competence' => '58','symbol' => 'D.5.3','taxonomy' => '3','name' => 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités','archive' => NULL), + array('id' => '250','fk_operational_competence' => '58','symbol' => 'D.5.4','taxonomy' => '3','name' => 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci','archive' => NULL), + array('id' => '251','fk_operational_competence' => '58','symbol' => 'D.5.5','taxonomy' => '3','name' => 'Informer les utilisateurs selon les besoins','archive' => NULL), + array('id' => '252','fk_operational_competence' => '59','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '253','fk_operational_competence' => '59','symbol' => 'E.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '254','fk_operational_competence' => '59','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '255','fk_operational_competence' => '59','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '256','fk_operational_competence' => '59','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '257','fk_operational_competence' => '59','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '258','fk_operational_competence' => '59','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '259','fk_operational_competence' => '59','symbol' => 'E.1.8','taxonomy' => '3','name' => 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable','archive' => NULL), + array('id' => '260','fk_operational_competence' => '60','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '261','fk_operational_competence' => '60','symbol' => 'E.2.2','taxonomy' => '3','name' => 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '262','fk_operational_competence' => '60','symbol' => 'E.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '263','fk_operational_competence' => '60','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '264','fk_operational_competence' => '60','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '265','fk_operational_competence' => '61','symbol' => 'E.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '266','fk_operational_competence' => '61','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '267','fk_operational_competence' => '62','symbol' => 'A.1.1','taxonomy' => '2','name' => 'Expliquent les tâches et fonctions des systèmes d’exploitation courants','archive' => NULL), + array('id' => '268','fk_operational_competence' => '62','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '269','fk_operational_competence' => '62','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Installent et configurent des appareils périphériques et leurs extensions','archive' => NULL), + array('id' => '270','fk_operational_competence' => '62','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement','archive' => NULL), + array('id' => '271','fk_operational_competence' => '62','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits','archive' => NULL), + array('id' => '272','fk_operational_competence' => '62','symbol' => 'A.1.6','taxonomy' => '1','name' => 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs','archive' => NULL), + array('id' => '273','fk_operational_competence' => '62','symbol' => 'A.1.7','taxonomy' => '3','name' => 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants','archive' => NULL), + array('id' => '274','fk_operational_competence' => '62','symbol' => 'A.1.8','taxonomy' => '3','name' => 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique','archive' => NULL), + array('id' => '275','fk_operational_competence' => '63','symbol' => 'A.2.1','taxonomy' => '3','name' => 'Installent et configurent des applications standards et les administrent','archive' => NULL), + array('id' => '276','fk_operational_competence' => '63','symbol' => 'A.2.2','taxonomy' => '2','name' => 'Actualisent les logiciels existants avec une version actuelle','archive' => NULL), + array('id' => '277','fk_operational_competence' => '63','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Décrivent les diverses variantes de licences','archive' => NULL), + array('id' => '278','fk_operational_competence' => '63','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Appliquent les processus de la gestion des licences','archive' => NULL), + array('id' => '279','fk_operational_competence' => '64','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Exécutent des tests de fonctions selon directives et évaluent les résultats','archive' => NULL), + array('id' => '280','fk_operational_competence' => '64','symbol' => 'A.3.2','taxonomy' => '3','name' => 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres','archive' => NULL), + array('id' => '281','fk_operational_competence' => '64','symbol' => 'A.3.3','taxonomy' => '4','name' => 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude','archive' => NULL), + array('id' => '282','fk_operational_competence' => '65','symbol' => 'A.4.1','taxonomy' => '3','name' => 'Appliquent des scripts et contrôlent leur exécution','archive' => NULL), + array('id' => '283','fk_operational_competence' => '65','symbol' => 'A.4.2','taxonomy' => '4','name' => 'Entreprennent des adaptations sur la fonctionnalité du script','archive' => NULL), + array('id' => '284','fk_operational_competence' => '65','symbol' => 'A.4.3','taxonomy' => '3','name' => 'Programment des scripts simples selon directives','archive' => NULL), + array('id' => '285','fk_operational_competence' => '66','symbol' => 'B.1.1','taxonomy' => '2','name' => 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)','archive' => NULL), + array('id' => '286','fk_operational_competence' => '66','symbol' => 'B.1.2','taxonomy' => '4','name' => 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant','archive' => NULL), + array('id' => '287','fk_operational_competence' => '66','symbol' => 'B.1.3','taxonomy' => '4','name' => 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '288','fk_operational_competence' => '66','symbol' => 'B.1.4','taxonomy' => '2','name' => 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud','archive' => NULL), + array('id' => '289','fk_operational_competence' => '67','symbol' => 'B.2.1','taxonomy' => '3','name' => 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur','archive' => NULL), + array('id' => '290','fk_operational_competence' => '67','symbol' => 'B.2.2','taxonomy' => '2','name' => 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions','archive' => NULL), + array('id' => '291','fk_operational_competence' => '67','symbol' => 'B.2.3','taxonomy' => '4','name' => 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '292','fk_operational_competence' => '67','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)','archive' => NULL), + array('id' => '293','fk_operational_competence' => '68','symbol' => 'B.3.1','taxonomy' => '2','name' => 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT','archive' => NULL), + array('id' => '294','fk_operational_competence' => '68','symbol' => 'B.3.2','taxonomy' => '3','name' => 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel','archive' => NULL), + array('id' => '295','fk_operational_competence' => '68','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise','archive' => NULL), + array('id' => '296','fk_operational_competence' => '68','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation','archive' => NULL), + array('id' => '297','fk_operational_competence' => '68','symbol' => 'B.3.5','taxonomy' => '3','name' => 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs','archive' => NULL), + array('id' => '298','fk_operational_competence' => '69','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique','archive' => NULL), + array('id' => '299','fk_operational_competence' => '69','symbol' => 'C.1.2','taxonomy' => '2','name' => 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution','archive' => NULL), + array('id' => '300','fk_operational_competence' => '69','symbol' => 'C.1.3','taxonomy' => '3','name' => 'Appliquent les logiciels appropriés pour la réalisation de présentations','archive' => NULL), + array('id' => '301','fk_operational_competence' => '69','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations','archive' => NULL), + array('id' => '302','fk_operational_competence' => '69','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)','archive' => NULL), + array('id' => '303','fk_operational_competence' => '70','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits','archive' => NULL), + array('id' => '304','fk_operational_competence' => '70','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Appliquent des directives et modèles de documentation de l‘entreprise','archive' => NULL), + array('id' => '305','fk_operational_competence' => '70','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires','archive' => NULL), + array('id' => '306','fk_operational_competence' => '70','symbol' => 'C.2.4','taxonomy' => '4','name' => 'Trient l’indispensable du superflu et fixent les bonnes priorités','archive' => NULL), + array('id' => '307','fk_operational_competence' => '70','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Élaborent des modes d’emploi compréhensibles et clairement structurés','archive' => NULL), + array('id' => '308','fk_operational_competence' => '70','symbol' => 'C.2.6','taxonomy' => '3','name' => 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace','archive' => NULL), + array('id' => '309','fk_operational_competence' => '70','symbol' => 'C.2.7','taxonomy' => '3','name' => 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation','archive' => NULL), + array('id' => '310','fk_operational_competence' => '71','symbol' => 'C.3.1','taxonomy' => '3','name' => 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition','archive' => NULL), + array('id' => '311','fk_operational_competence' => '71','symbol' => 'C.3.2','taxonomy' => '3','name' => 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée','archive' => NULL), + array('id' => '312','fk_operational_competence' => '71','symbol' => 'C.3.3','taxonomy' => '4','name' => 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent','archive' => NULL), + array('id' => '313','fk_operational_competence' => '71','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient','archive' => NULL), + array('id' => '314','fk_operational_competence' => '71','symbol' => 'C.3.5','taxonomy' => '3','name' => 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)','archive' => NULL), + array('id' => '315','fk_operational_competence' => '72','symbol' => 'D.1.1','taxonomy' => '2','name' => 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème','archive' => NULL), + array('id' => '316','fk_operational_competence' => '72','symbol' => 'D.1.2','taxonomy' => '4','name' => 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '317','fk_operational_competence' => '72','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement','archive' => NULL), + array('id' => '318','fk_operational_competence' => '72','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions','archive' => NULL), + array('id' => '319','fk_operational_competence' => '72','symbol' => 'D.1.5','taxonomy' => '3','name' => 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux','archive' => NULL), + array('id' => '320','fk_operational_competence' => '72','symbol' => 'D.1.6','taxonomy' => '2','name' => 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes','archive' => NULL), + array('id' => '321','fk_operational_competence' => '72','symbol' => 'D.1.7','taxonomy' => '3','name' => 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients','archive' => NULL), + array('id' => '322','fk_operational_competence' => '73','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée','archive' => NULL), + array('id' => '323','fk_operational_competence' => '73','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe','archive' => NULL), + array('id' => '324','fk_operational_competence' => '73','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe','archive' => NULL), + array('id' => '325','fk_operational_competence' => '73','symbol' => 'D.2.4','taxonomy' => '2','name' => 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe','archive' => NULL), + array('id' => '326','fk_operational_competence' => '73','symbol' => 'D.2.5','taxonomy' => '2','name' => 'Décrivent les causes et la dynamique des conflits','archive' => NULL), + array('id' => '327','fk_operational_competence' => '73','symbol' => 'D.2.6','taxonomy' => '4','name' => 'Décèlent à temps les situations de conflits et prend les mesures en conséquence','archive' => NULL), + array('id' => '328','fk_operational_competence' => '74','symbol' => 'D.3.1','taxonomy' => '3','name' => 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive','archive' => NULL), + array('id' => '329','fk_operational_competence' => '74','symbol' => 'D.3.2','taxonomy' => '2','name' => 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos','archive' => NULL), + array('id' => '330','fk_operational_competence' => '74','symbol' => 'D.3.3','taxonomy' => '3','name' => 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail','archive' => NULL), + array('id' => '331','fk_operational_competence' => '74','symbol' => 'D.3.4','taxonomy' => '3','name' => 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes','archive' => NULL), + array('id' => '332','fk_operational_competence' => '74','symbol' => 'D.3.5','taxonomy' => '3','name' => 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers','archive' => NULL) + ); + foreach ($objective as $objectivee){ + $this->db->table('objective')->insert($objectivee); } } diff --git a/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php index fa2a8414..dfc5311e 100644 --- a/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php +++ b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php @@ -11,732 +11,91 @@ class addOperationalCompetencesDatas extends Seeder public function run() { //operational_competence// - $operational_competences=[ - array ( - 'id' => '1', - 'fk_competence_domain' => '1', - 'name' => 'Analyser, structurer et documenter les exigences ainsi que les besoins', - 'symbol' => 'A++', - 'methodologic' => 'Travail structuré, documentation adéquate', - 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires', - 'personal' => 'Fiabilité, autoréflexion, interrogation constructive du problème', - 'archive' => '2021-06-02 08:44:41', - ), - array ( - 'id' => '2', - 'fk_competence_domain' => '1', - 'name' => 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises', - 'symbol' => 'A2', - 'methodologic' => 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision', - 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau', - 'personal' => 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_competence_domain' => '1', - 'name' => 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies', - 'symbol' => 'A3', - 'methodologic' => 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration', - 'social' => '', - 'personal' => 'Précision dans le travail', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_competence_domain' => '2', - 'name' => 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', - 'symbol' => 'B1', - 'methodologic' => '', - 'social' => 'Capacité de critique mutuelle', - 'personal' => 'Développer préventivement, estimer les conséquences', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_competence_domain' => '2', - 'name' => 'Mettre en œuvre des directives d’architecture dans un projet concret', - 'symbol' => 'B2', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacités d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_competence_domain' => '2', - 'name' => 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement', - 'symbol' => 'B3', - 'methodologic' => 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau', - 'social' => 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant', - 'personal' => 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_competence_domain' => '2', - 'name' => 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet', - 'symbol' => 'B4', - 'methodologic' => 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices', - 'social' => 'Travail en groupe, empathie', - 'personal' => 'Capacités innovatrices, créativité', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_competence_domain' => '2', - 'name' => 'Garantir la qualité des applications', - 'symbol' => 'B5', - 'methodologic' => 'Travail reproductible, description propres des versions de l‘application, gestion de projets', - 'social' => 'Capacité de critiques et de conflits, empathie', - 'personal' => 'Vérification autocritique des résultats, méticulosité', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_competence_domain' => '2', - 'name' => 'Préparer et mettre en œuvre l’introduction des applications', - 'symbol' => 'B6', - 'methodologic' => 'Gestion de projets', - 'social' => 'Capacités de communication, travail en réseau, déroulement sensible', - 'personal' => 'Conscience de la responsabilité', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_competence_domain' => '3', - 'name' => 'Identifier et analyser des données, puis développer avec des modèles de données appropriés', - 'symbol' => 'C1', - 'methodologic' => 'Déroulement structuré, comportement avec des outils de présentation, développement itératif', - 'social' => 'Communication avec des clients, travail en groupe', - 'personal' => 'Précision, abstraction, remise en question critique', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_competence_domain' => '3', - 'name' => 'Mettre en œuvre un modèle de données dans une base de données', - 'symbol' => 'C2', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacité d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_competence_domain' => '3', - 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', - 'symbol' => 'C3', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_competence_domain' => '4', - 'name' => 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau', - 'symbol' => 'D1', - 'methodologic' => 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_competence_domain' => '5', - 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', - 'symbol' => 'E1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_competence_domain' => '5', - 'name' => 'Collaborer à des projets et travailler selon des méthodes de projets', - 'symbol' => 'E2', - 'methodologic' => 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs', - 'personal' => 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_competence_domain' => '5', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'E3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise -', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_competence_domain' => '6', - 'name' => 'Evaluer et mettre en service une place de travail utilisateur', - 'symbol' => 'A1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_competence_domain' => '6', - 'name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs', - 'symbol' => 'A2', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_competence_domain' => '6', - 'name' => 'Connecter et configurer des appareils périphériques', - 'symbol' => 'A3', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale, langage adapté au client', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_competence_domain' => '7', - 'name' => 'Mettre en service des systèmes serveurs', - 'symbol' => 'B1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_competence_domain' => '7', - 'name' => 'Installer des réseaux et leurs topologies', - 'symbol' => 'B2', - 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision', - 'social' => 'Faire des entretiens professionnels en anglais', - 'personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_competence_domain' => '7', - 'name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage', - 'symbol' => 'B3', - 'methodologic' => 'Actions préventives', - 'social' => 'Conseil', - 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress', - 'archive' => NULL, - ), - array ( - 'id' => '23', - 'fk_competence_domain' => '8', - 'name' => 'Assurer la maintenance de réseaux et les développer', - 'symbol' => 'C1', - 'methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => '', - 'personal' => 'Précision, fiable, actions attentives', - 'archive' => NULL, - ), - array ( - 'id' => '24', - 'fk_competence_domain' => '8', - 'name' => 'Assurer la maintenance et administrer des serveurs', - 'symbol' => 'C2', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)', - 'social' => 'Travail en groupe, entretien professionnel en anglais', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_competence_domain' => '8', - 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', - 'symbol' => 'C3', - 'methodologic' => 'Techniques d’interrogation', - 'social' => 'Empathie', - 'personal' => 'Comprendre et interpréter des documents anglais', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_competence_domain' => '8', - 'name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)', - 'symbol' => 'C4', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique', - 'social' => 'Travailler en groupe', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_competence_domain' => '9', - 'name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques', - 'symbol' => 'D1', - 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide', - 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', - 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_competence_domain' => '9', - 'name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place', - 'symbol' => 'D2', - 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist', - 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', - 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_competence_domain' => '10', - 'name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', - 'symbol' => 'E1', - 'methodologic' => '', - 'social' => 'Capacité de critique mutuelle', - 'personal' => 'Développer préventivement, estimer les conséquences', - 'archive' => NULL, - ), - array ( - 'id' => '30', - 'fk_competence_domain' => '10', - 'name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement', - 'symbol' => 'E2', - 'methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau', - 'social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant', - 'personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide', - 'archive' => NULL, - ), - array ( - 'id' => '31', - 'fk_competence_domain' => '10', - 'name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client', - 'symbol' => 'E3', - 'methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes', - 'social' => 'Travail en groupe, empathie', - 'personal' => 'Capacité d’innovation, créativité', - 'archive' => NULL, - ), - array ( - 'id' => '32', - 'fk_competence_domain' => '10', - 'name' => 'Mettre en œuvre des modèles de données dans une base de données', - 'symbol' => 'E4', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacité d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '33', - 'fk_competence_domain' => '10', - 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', - 'symbol' => 'E5', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '34', - 'fk_competence_domain' => '11', - 'name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace', - 'symbol' => 'F1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '35', - 'fk_competence_domain' => '11', - 'name' => 'Collaborer à des projets', - 'symbol' => 'F2', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet', - 'archive' => NULL, - ), - array ( - 'id' => '36', - 'fk_competence_domain' => '11', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'F3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', - 'archive' => NULL, - ), - array ( - 'id' => '42', - 'fk_competence_domain' => '12', - 'name' => 'Choisir et mettre en service une place de travail utilisateur', - 'symbol' => 'A1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, -faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', - 'social' => 'Orientation client, communication écrite et orale.', - 'personal' => 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.', - 'archive' => NULL, - ), - array ( - 'id' => '43', - 'fk_competence_domain' => '12', - 'name' => 'Choisir et mettre en service des systèmes serveurs', - 'symbol' => 'A2', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des + $operational_competence = array( + array('id' => '1','fk_competence_domain' => '1','name' => 'Analyser, structurer et documenter les exigences ainsi que les besoins','symbol' => 'A1','methodologic' => 'Travail structuré, documentation adéquate','social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires','personal' => 'Fiabilité, autoréflexion, interrogation constructive du problème','archive' => NULL), + array('id' => '2','fk_competence_domain' => '1','name' => 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises','symbol' => 'A2','methodologic' => 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision','social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau','personal' => 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions','archive' => NULL), + array('id' => '3','fk_competence_domain' => '1','name' => 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies','symbol' => 'A3','methodologic' => 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration','social' => '','personal' => 'Précision dans le travail','archive' => NULL), + array('id' => '4','fk_competence_domain' => '2','name' => 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'B1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '5','fk_competence_domain' => '2','name' => 'Mettre en œuvre des directives d’architecture dans un projet concret','symbol' => 'B2','methodologic' => '','social' => '','personal' => 'Capacités d’abstraction','archive' => NULL), + array('id' => '6','fk_competence_domain' => '2','name' => 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement','symbol' => 'B3','methodologic' => 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau','social' => 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant','personal' => 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide','archive' => NULL), + array('id' => '7','fk_competence_domain' => '2','name' => 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet','symbol' => 'B4','methodologic' => 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices','social' => 'Travail en groupe, empathie','personal' => 'Capacités innovatrices, créativité','archive' => NULL), + array('id' => '8','fk_competence_domain' => '2','name' => 'Garantir la qualité des applications','symbol' => 'B5','methodologic' => 'Travail reproductible, description propres des versions de l‘application, gestion de projets','social' => 'Capacité de critiques et de conflits, empathie','personal' => 'Vérification autocritique des résultats, méticulosité','archive' => NULL), + array('id' => '9','fk_competence_domain' => '2','name' => 'Préparer et mettre en œuvre l’introduction des applications','symbol' => 'B6','methodologic' => 'Gestion de projets','social' => 'Capacités de communication, travail en réseau, déroulement sensible','personal' => 'Conscience de la responsabilité','archive' => NULL), + array('id' => '10','fk_competence_domain' => '3','name' => 'Identifier et analyser des données, puis développer avec des modèles de données appropriés','symbol' => 'C1','methodologic' => 'Déroulement structuré, comportement avec des outils de présentation, développement itératif','social' => 'Communication avec des clients, travail en groupe','personal' => 'Précision, abstraction, remise en question critique','archive' => NULL), + array('id' => '11','fk_competence_domain' => '3','name' => 'Mettre en œuvre un modèle de données dans une base de données','symbol' => 'C2','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '12','fk_competence_domain' => '3','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'C3','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '13','fk_competence_domain' => '4','name' => 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau','symbol' => 'D1','methodologic' => 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '14','fk_competence_domain' => '5','name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace','symbol' => 'E1','methodologic' => 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '15','fk_competence_domain' => '5','name' => 'Collaborer à des projets et travailler selon des méthodes de projets','symbol' => 'E2','methodologic' => 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes','social' => 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs','personal' => 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion','archive' => NULL), + array('id' => '16','fk_competence_domain' => '5','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'E3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise +','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL), + array('id' => '17','fk_competence_domain' => '6','name' => 'Evaluer et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '18','fk_competence_domain' => '6','name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '19','fk_competence_domain' => '6','name' => 'Connecter et configurer des appareils périphériques','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, langage adapté au client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '20','fk_competence_domain' => '7','name' => 'Mettre en service des systèmes serveurs','symbol' => 'B1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '21','fk_competence_domain' => '7','name' => 'Installer des réseaux et leurs topologies','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision','social' => 'Faire des entretiens professionnels en anglais','personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction','archive' => NULL), + array('id' => '22','fk_competence_domain' => '7','name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage','symbol' => 'B3','methodologic' => 'Actions préventives','social' => 'Conseil','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress','archive' => NULL), + array('id' => '23','fk_competence_domain' => '8','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'C1','methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => '','personal' => 'Précision, fiable, actions attentives','archive' => NULL), + array('id' => '24','fk_competence_domain' => '8','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'C2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)','social' => 'Travail en groupe, entretien professionnel en anglais','personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline','archive' => NULL), + array('id' => '25','fk_competence_domain' => '8','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C3','methodologic' => 'Techniques d’interrogation','social' => 'Empathie','personal' => 'Comprendre et interpréter des documents anglais','archive' => NULL), + array('id' => '26','fk_competence_domain' => '8','name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)','symbol' => 'C4','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique','social' => 'Travailler en groupe','personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion','archive' => NULL), + array('id' => '27','fk_competence_domain' => '9','name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques','symbol' => 'D1','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '28','fk_competence_domain' => '9','name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place','symbol' => 'D2','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '29','fk_competence_domain' => '10','name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'E1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '30','fk_competence_domain' => '10','name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement','symbol' => 'E2','methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau','social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant','personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide','archive' => NULL), + array('id' => '31','fk_competence_domain' => '10','name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client','symbol' => 'E3','methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes','social' => 'Travail en groupe, empathie','personal' => 'Capacité d’innovation, créativité','archive' => NULL), + array('id' => '32','fk_competence_domain' => '10','name' => 'Mettre en œuvre des modèles de données dans une base de données','symbol' => 'E4','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '33','fk_competence_domain' => '10','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'E5','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '34','fk_competence_domain' => '11','name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace','symbol' => 'F1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '35','fk_competence_domain' => '11','name' => 'Collaborer à des projets','symbol' => 'F2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet','archive' => NULL), + array('id' => '36','fk_competence_domain' => '11','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'F3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL), + array('id' => '42','fk_competence_domain' => '12','name' => 'Choisir et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, +faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).','social' => 'Orientation client, communication écrite et orale.','personal' => 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.','archive' => NULL), + array('id' => '43','fk_competence_domain' => '12','name' => 'Choisir et mettre en service des systèmes serveurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des checklists, travail durable (économiquement, écologiquement, -socialement).', - 'social' => 'Orientation client, communication écrite et orale.', - 'personal' => 'Auto-réflexion critique.', - 'archive' => NULL, - ), - array ( - 'id' => '44', - 'fk_competence_domain' => '12', - 'name' => 'Choisir des composants réseau et les mettre en service', - 'symbol' => 'A3', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des +socialement).','social' => 'Orientation client, communication écrite et orale.','personal' => 'Auto-réflexion critique.','archive' => NULL), + array('id' => '44','fk_competence_domain' => '12','name' => 'Choisir des composants réseau et les mettre en service','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail -(économiquement, écologiquement, socialement).', - 'social' => 'Communication écrite et orale, empathie, travail en groupe, -langage adapté au public cible.', - 'personal' => 'Auto-réflexion critique, capacités d‘abstraction.', - 'archive' => NULL, - ), - array ( - 'id' => '45', - 'fk_competence_domain' => '13', - 'name' => 'Planifier et installer des réseaux ainsi que leur topologie', - 'symbol' => 'B1', - 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.', - 'social' => 'Faire des entretiens professionnels en anglais.', - 'personal' => 'Méthode précise de travail, conscience de la responsabilité, -capacités d’abstraction.', - 'archive' => NULL, - ), - array ( - 'id' => '46', - 'fk_competence_domain' => '13', - 'name' => 'Planifier et assurer la sécurité réseau ainsi que l’accès distant', - 'symbol' => 'B2', - 'methodologic' => 'Déroulement analytique, principe de Pareto.', - 'social' => 'Reconnaître et classer les besoins en sécurité du client.', - 'personal' => 'Travail précis, conscience de la responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '47', - 'fk_competence_domain' => '13', - 'name' => 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement', - 'symbol' => 'B3', - 'methodologic' => 'Agir de manière préventive.', - 'social' => 'Conscience de la hiérarchie.', - 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.', - 'archive' => NULL, - ), - array ( - 'id' => '48', - 'fk_competence_domain' => '13', - 'name' => 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau', - 'symbol' => 'B4', - 'methodologic' => 'Agir de manière préventive.', - 'social' => '', - 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.', - 'archive' => NULL, - ), - array ( - 'id' => '49', - 'fk_competence_domain' => '14', - 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', - 'symbol' => 'C1', - 'methodologic' => 'Techniques d’interrogation.', - 'social' => 'Empathie.', - 'personal' => 'Comprendre et interpréter des documents anglais.', - 'archive' => NULL, - ), - array ( - 'id' => '50', - 'fk_competence_domain' => '14', - 'name' => 'Mettre en service et configurer les services étendus des serveurs', - 'symbol' => 'C2', - 'methodologic' => 'Techniques d‘entretiens, pensées préventive et systématique, -considération globale, remise en question systématique.', - 'social' => 'Travail en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '51', - 'fk_competence_domain' => '14', - 'name' => 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)', - 'symbol' => 'C3', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, -considération de l’ensemble, remise en question systématique.', - 'social' => 'Travailler en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '52', - 'fk_competence_domain' => '14', - 'name' => 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage', - 'symbol' => 'C4', - 'methodologic' => 'Actions préventives.', - 'social' => 'Conseil.', - 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.', - 'archive' => NULL, - ), - array ( - 'id' => '53', - 'fk_competence_domain' => '14', - 'name' => 'Offrir des services via le réseau en prenant des mesures de sécurité', - 'symbol' => 'C5', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, -considération de l’ensemble, remise en question systématique.', - 'social' => 'Travailler en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '54', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance de réseaux et les développer', - 'symbol' => 'D1', - 'methodologic' => 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', - 'social' => '', - 'personal' => 'Précision, fiable, actions attentives.', - 'archive' => NULL, - ), - array ( - 'id' => '55', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance et administrer des serveurs', - 'symbol' => 'D2', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable -(économiquement, écologiquement, socialement).', - 'social' => 'Travail en groupe, entretien professionnel en anglais.', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.', - 'archive' => NULL, - ), - array ( - 'id' => '56', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance et administrer les équipements des utilisateurs', - 'symbol' => 'D3', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.', - 'social' => 'Travail en groupe, comportement diplomatique avec les utilisateurs.', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '57', - 'fk_competence_domain' => '15', - 'name' => 'Enregistrer, standardiser et automatiser des processus TIC', - 'symbol' => 'D4', - 'methodologic' => 'Déroulement structuré et orienté objectif, pensée et action préventive.', - 'social' => 'Conseil, comportement dans des situations de stress.', - 'personal' => 'Penser et travailler de manière disciplinée.', - 'archive' => NULL, - ), - array ( - 'id' => '58', - 'fk_competence_domain' => '15', - 'name' => 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications', - 'symbol' => 'D5', - 'methodologic' => 'Pensée préventive.', - 'social' => 'Appliquer l’anglais oralement et par écrit.', - 'personal' => 'Réflexion, discipline et capacité d‘endurance.', - 'archive' => NULL, - ), - array ( - 'id' => '59', - 'fk_competence_domain' => '16', - 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', - 'symbol' => 'E1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.', - 'archive' => NULL, - ), - array ( - 'id' => '60', - 'fk_competence_domain' => '16', - 'name' => 'Collaborer à des projets', - 'symbol' => 'E2', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.', - 'archive' => NULL, - ), - array ( - 'id' => '61', - 'fk_competence_domain' => '16', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'E3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.', - 'archive' => NULL, - ), - array ( - 'id' => '62', - 'fk_competence_domain' => '17', - 'name' => 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance', - 'symbol' => 'A1', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '63', - 'fk_competence_domain' => '17', - 'name' => 'Installer et configurer des applications standard', - 'symbol' => 'A2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '64', - 'fk_competence_domain' => '17', - 'name' => 'Exécuter et évaluer des tests de fonctionnalité', - 'symbol' => 'A3', - 'methodologic' => 'Techniques de travail, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '65', - 'fk_competence_domain' => '17', - 'name' => 'Mettre en œuvre des scripts d’automatisation', - 'symbol' => 'A4', - 'methodologic' => 'Techniques de travail, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '66', - 'fk_competence_domain' => '18', - 'name' => 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes', - 'symbol' => 'B1', - 'methodologic' => 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '67', - 'fk_competence_domain' => '18', - 'name' => 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes', - 'symbol' => 'B2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '68', - 'fk_competence_domain' => '18', - 'name' => 'Assurer la sécurité des terminaux ICT utilisateurs', - 'symbol' => 'B3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '69', - 'fk_competence_domain' => '19', - 'name' => 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT', - 'symbol' => 'C1', - 'methodologic' => 'Techniques de travail, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '70', - 'fk_competence_domain' => '19', - 'name' => 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs', - 'symbol' => 'C2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '71', - 'fk_competence_domain' => '19', - 'name' => 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT', - 'symbol' => 'C3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '72', - 'fk_competence_domain' => '20', - 'name' => 'Traiter les demandes des clients au 1er et 2e niveau du support', - 'symbol' => 'D1', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '73', - 'fk_competence_domain' => '20', - 'name' => 'Se comporter de manière adéquate avec les clients et l’équipe', - 'symbol' => 'D2', - 'methodologic' => 'Techniques de travail, stratégies d’information et de communication.', - 'social' => 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.', - 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '74', - 'fk_competence_domain' => '20', - 'name' => 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets', - 'symbol' => 'D3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '75', - 'fk_competence_domain' => '25', - 'name' => 'aa', - 'symbol' => 'aa', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '76', - 'fk_competence_domain' => '25', - 'name' => 'aa', - 'symbol' => 'aa', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - ]; - foreach ($operational_competences as $operational_competence){ - $this->db->table('operational_competence')->insert($operational_competence); +(économiquement, écologiquement, socialement).','social' => 'Communication écrite et orale, empathie, travail en groupe, +langage adapté au public cible.','personal' => 'Auto-réflexion critique, capacités d‘abstraction.','archive' => NULL), + array('id' => '45','fk_competence_domain' => '13','name' => 'Planifier et installer des réseaux ainsi que leur topologie','symbol' => 'B1','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.','social' => 'Faire des entretiens professionnels en anglais.','personal' => 'Méthode précise de travail, conscience de la responsabilité, +capacités d’abstraction.','archive' => NULL), + array('id' => '46','fk_competence_domain' => '13','name' => 'Planifier et assurer la sécurité réseau ainsi que l’accès distant','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto.','social' => 'Reconnaître et classer les besoins en sécurité du client.','personal' => 'Travail précis, conscience de la responsabilité.','archive' => NULL), + array('id' => '47','fk_competence_domain' => '13','name' => 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement','symbol' => 'B3','methodologic' => 'Agir de manière préventive.','social' => 'Conscience de la hiérarchie.','personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.','archive' => NULL), + array('id' => '48','fk_competence_domain' => '13','name' => 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau','symbol' => 'B4','methodologic' => 'Agir de manière préventive.','social' => '','personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.','archive' => NULL), + array('id' => '49','fk_competence_domain' => '14','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C1','methodologic' => 'Techniques d’interrogation.','social' => 'Empathie.','personal' => 'Comprendre et interpréter des documents anglais.','archive' => NULL), + array('id' => '50','fk_competence_domain' => '14','name' => 'Mettre en service et configurer les services étendus des serveurs','symbol' => 'C2','methodologic' => 'Techniques d‘entretiens, pensées préventive et systématique, +considération globale, remise en question systématique.','social' => 'Travail en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '51','fk_competence_domain' => '14','name' => 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)','symbol' => 'C3','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.','social' => 'Travailler en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '52','fk_competence_domain' => '14','name' => 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage','symbol' => 'C4','methodologic' => 'Actions préventives.','social' => 'Conseil.','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.','archive' => NULL), + array('id' => '53','fk_competence_domain' => '14','name' => 'Offrir des services via le réseau en prenant des mesures de sécurité','symbol' => 'C5','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.','social' => 'Travailler en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '54','fk_competence_domain' => '15','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'D1','methodologic' => 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).','social' => '','personal' => 'Précision, fiable, actions attentives.','archive' => NULL), + array('id' => '55','fk_competence_domain' => '15','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'D2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable +(économiquement, écologiquement, socialement).','social' => 'Travail en groupe, entretien professionnel en anglais.','personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.','archive' => NULL), + array('id' => '56','fk_competence_domain' => '15','name' => 'Assurer la maintenance et administrer les équipements des utilisateurs','symbol' => 'D3','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.','social' => 'Travail en groupe, comportement diplomatique avec les utilisateurs.','personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '57','fk_competence_domain' => '15','name' => 'Enregistrer, standardiser et automatiser des processus TIC','symbol' => 'D4','methodologic' => 'Déroulement structuré et orienté objectif, pensée et action préventive.','social' => 'Conseil, comportement dans des situations de stress.','personal' => 'Penser et travailler de manière disciplinée.','archive' => NULL), + array('id' => '58','fk_competence_domain' => '15','name' => 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications','symbol' => 'D5','methodologic' => 'Pensée préventive.','social' => 'Appliquer l’anglais oralement et par écrit.','personal' => 'Réflexion, discipline et capacité d‘endurance.','archive' => NULL), + array('id' => '59','fk_competence_domain' => '16','name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace','symbol' => 'E1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.','archive' => NULL), + array('id' => '60','fk_competence_domain' => '16','name' => 'Collaborer à des projets','symbol' => 'E2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.','archive' => NULL), + array('id' => '61','fk_competence_domain' => '16','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'E3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.','archive' => NULL), + array('id' => '62','fk_competence_domain' => '17','name' => 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance','symbol' => 'A1','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '63','fk_competence_domain' => '17','name' => 'Installer et configurer des applications standard','symbol' => 'A2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '64','fk_competence_domain' => '17','name' => 'Exécuter et évaluer des tests de fonctionnalité','symbol' => 'A3','methodologic' => 'Techniques de travail, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité.','archive' => NULL), + array('id' => '65','fk_competence_domain' => '17','name' => 'Mettre en œuvre des scripts d’automatisation','symbol' => 'A4','methodologic' => 'Techniques de travail, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité.','archive' => NULL), + array('id' => '66','fk_competence_domain' => '18','name' => 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes','symbol' => 'B1','methodologic' => 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '67','fk_competence_domain' => '18','name' => 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes','symbol' => 'B2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '68','fk_competence_domain' => '18','name' => 'Assurer la sécurité des terminaux ICT utilisateurs','symbol' => 'B3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '69','fk_competence_domain' => '19','name' => 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT','symbol' => 'C1','methodologic' => 'Techniques de travail, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.','archive' => NULL), + array('id' => '70','fk_competence_domain' => '19','name' => 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs','symbol' => 'C2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL), + array('id' => '71','fk_competence_domain' => '19','name' => 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT','symbol' => 'C3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL), + array('id' => '72','fk_competence_domain' => '20','name' => 'Traiter les demandes des clients au 1er et 2e niveau du support','symbol' => 'D1','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '73','fk_competence_domain' => '20','name' => 'Se comporter de manière adéquate avec les clients et l’équipe','symbol' => 'D2','methodologic' => 'Techniques de travail, stratégies d’information et de communication.','social' => 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.','personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité.','archive' => NULL), + array('id' => '74','fk_competence_domain' => '20','name' => 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets','symbol' => 'D3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL) + ); + foreach ($operational_competence as $operational_competencee){ + $this->db->table('operational_competence')->insert($operational_competencee); } } } \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php index 2edc68c2..714902c4 100644 --- a/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php +++ b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php @@ -12,30 +12,13 @@ class addTrainerApprenticeDatas extends Seeder public function run() { //trainer_apprentice// - $trainer_apprentices=[ - array ( - 'id' => '10', - 'fk_trainer' => '2', - 'fk_apprentice' => '4', - ), - array ( - 'id' => '11', - 'fk_trainer' => '3', - 'fk_apprentice' => '4', - ), - array ( - 'id' => '2', - 'fk_trainer' => '3', - 'fk_apprentice' => '5', - ), - array ( - 'id' => '3', - 'fk_trainer' => '6', - 'fk_apprentice' => '7', - ), - ]; - foreach ($trainer_apprentices as $trainer_apprentice) - $this->db->table('trainer_apprentice')->insert($trainer_apprentice); + $trainer_apprentice = array( + array('id' => '1','fk_trainer' => '2','fk_apprentice' => '4'), + array('id' => '2','fk_trainer' => '3','fk_apprentice' => '5'), + array('id' => '3','fk_trainer' => '6','fk_apprentice' => '7') + ); + foreach ($trainer_apprentice as $trainer_apprenticee) + $this->db->table('trainer_apprentice')->insert($trainer_apprenticee); } } \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserCoursesDatas.php b/orif/plafor/Database/Seeds/addUserCoursesDatas.php index b02d6ba3..0c61e550 100644 --- a/orif/plafor/Database/Seeds/addUserCoursesDatas.php +++ b/orif/plafor/Database/Seeds/addUserCoursesDatas.php @@ -11,42 +11,13 @@ class addUserCoursesDatas extends Seeder public function run() { //user_course// - $user_courses=[ - array ( - 'id' => '1', - 'fk_user' => '4', - 'fk_course_plan' => '1', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '2', - 'fk_user' => '5', - 'fk_course_plan' => '3', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '3', - 'fk_user' => '7', - 'fk_course_plan' => '4', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '4', - 'fk_user' => '5', - 'fk_course_plan' => '1', - 'fk_status' => '1', - 'date_begin' => '2021-05-06', - 'date_end' => '2021-08-20', - ), - ]; - foreach ($user_courses as $user_course){ - $this->db->table('user_course')->insert($user_course); + $user_course = array( + array('id' => '1','fk_user' => '4','fk_course_plan' => '1','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00'), + array('id' => '2','fk_user' => '5','fk_course_plan' => '3','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00'), + array('id' => '3','fk_user' => '7','fk_course_plan' => '4','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00') + ); + foreach ($user_course as $user_coursee){ + $this->db->table('user_course')->insert($user_coursee); } } From 1fa26126c6eee6859b3b5d53dfbc89a8c5cdbdd9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 22 Sep 2021 11:10:37 +0200 Subject: [PATCH 105/172] updated admin panel to add apprentice section --- orif/common/Config/AdminPanelConfig.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/orif/common/Config/AdminPanelConfig.php b/orif/common/Config/AdminPanelConfig.php index 5cdd1bd1..1fb9f395 100644 --- a/orif/common/Config/AdminPanelConfig.php +++ b/orif/common/Config/AdminPanelConfig.php @@ -18,11 +18,13 @@ class AdminPanelConfig extends \CodeIgniter\Config\BaseConfig public $views=[ /** eg... */ ['label'=>'user_lang.title_user_list','title'=>'user_lang.title_user_list','pageLink'=>'user/admin/list_user'], + ['label'=>'user_lang.title_apprentice_list','title'=>'user_lang.title_apprentice_list','pageLink'=>'plafor/apprentice/list_apprentice'], ['label'=>'user_lang.admin_course_plans','title'=>'user_lang.admin_course_plans','pageLink'=>'plafor/admin/list_course_plan'], ['label'=>'user_lang.admin_competence_domains','title'=>'user_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], ['label'=>'user_lang.admin_operational_competences','title'=>'user_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], ['label'=>'user_lang.admin_objectives','title'=>'user_lang.admin_objectives','pageLink'=>'plafor/admin/list_objective'], + ]; } \ No newline at end of file From 0ce0357a430c172bd6bc39b028384ce18f815114 Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 22 Sep 2021 11:21:22 +0200 Subject: [PATCH 106/172] updated seed --- orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php index 121338da..c4628eb9 100644 --- a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php +++ b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php @@ -12,7 +12,7 @@ public function run() { //Acquisition status// $acquisition_status = array( - array('id' => '1','fk_objective' => '1','fk_user_course' => '1','fk_acquisition_level' => '4'), + array('id' => '1','fk_objective' => '1','fk_user_course' => '1','fk_acquisition_level' => '1'), array('id' => '2','fk_objective' => '2','fk_user_course' => '1','fk_acquisition_level' => '1'), array('id' => '3','fk_objective' => '3','fk_user_course' => '1','fk_acquisition_level' => '1'), array('id' => '4','fk_objective' => '4','fk_user_course' => '1','fk_acquisition_level' => '1'), From 681fb2c1239cf50c93376e21452243adddb481b9 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 28 Sep 2021 09:41:30 +0200 Subject: [PATCH 107/172] Added new migrations and seeds files with new course_plan --- .../2021-09-28-090428_AddCompetenceDomain.php | 47 ++ .../2021-09-28-090428_AddCoursePlan.php | 46 ++ .../2021-09-28-090428_AddObjective.php | 51 ++ .../2021-09-28-090428_AddOpCompetence.php | 62 +++ .../Seeds/addCompetenceDomain2021Datas.php | 37 ++ .../Database/Seeds/addCoursePlan2021Datas.php | 19 + .../Database/Seeds/addObjective2021Datas.php | 434 ++++++++++++++++++ .../addOperationalCompetences2021Datas.php | 98 ++++ 8 files changed, 794 insertions(+) create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php create mode 100644 orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addCoursePlan2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addObjective2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php new file mode 100644 index 00000000..29c443b8 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php @@ -0,0 +1,47 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_course_plan' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'archive TIMESTAMP NULL', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_course_plan', 'course_plan','id'); + try { + $this->db->tableExists('competence_domain')===true?:$this->forge->createTable('competence_domain'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCompetenceDomain2021Datas'); + } + + public function down() { + $this->forge->dropTable('competence_domain'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php new file mode 100644 index 00000000..9f6ee082 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php @@ -0,0 +1,46 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'formation_number' => [ + 'type' => 'varchar', + 'constraint' => '5', + ], + 'official_name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'date_begin' => [ + 'type' => 'date', + + ], + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + try { + $this->db->tableExists('course_plan')===true?:$this->forge->createTable('course_plan'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCoursePlan2021Datas'); + } + + public function down() { + $this->forge->dropTable('course_plan'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php new file mode 100644 index 00000000..7e24e3c2 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php @@ -0,0 +1,51 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_operational_competence' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'taxonomy' => [ + 'type' => 'int', + 'constraint' => '5', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '350', + ], + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_operational_competence','operational_competence','id'); + try { + $this->db->tableExists('objective')===true?:$this->forge->createTable('objective'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addObjective2021Datas'); + } + + public function down() { + $this->forge->dropTable('objective'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php new file mode 100644 index 00000000..8398e6c8 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php @@ -0,0 +1,62 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_competence_domain' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '150', + 'default' => 'null', + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'methodologic' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'social' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'personal' => [ + 'type' => 'text', + 'default' => 'null', + ], + + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_competence_domain', 'competence_domain','id'); + try { + $this->db->tableExists('operational_competence')===true?:$this->forge->createTable('operational_competence'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addOperationalCompetences2021Datas'); + } + + public function down() { + $this->forge->dropTable('operational_competence'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php b/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php new file mode 100644 index 00000000..812516cf --- /dev/null +++ b/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php @@ -0,0 +1,37 @@ + '21','fk_course_plan' => '5','symbol' => 'A','name' => 'Suivi des projets ICT','archive' => NULL), + array('id' => '22','fk_course_plan' => '5','symbol' => 'B','name' => 'Assistance et conseils dans l’environnement ICT','archive' => NULL), + array('id' => '23','fk_course_plan' => '5','symbol' => 'C','name' => 'Création et maintenance de données numériques','archive' => NULL), + array('id' => '24','fk_course_plan' => '5','symbol' => 'D','name' => 'Fourniture et exploitation de solutions ICT','archive' => NULL), + array('id' => '25','fk_course_plan' => '5','symbol' => 'E','name' => 'Exploitation des réseaux','archive' => NULL), + array('id' => '26','fk_course_plan' => '5','symbol' => 'F','name' => 'Exploitation des systèmes de serveurs et de leurs services','archive' => NULL), + array('id' => '27','fk_course_plan' => '6','symbol' => 'A','name' => 'Suivi des projets ICT','archive' => NULL), + array('id' => '28','fk_course_plan' => '6','symbol' => 'B','name' => 'Assistance et conseils dans l’environnement ICT','archive' => NULL), + array('id' => '29','fk_course_plan' => '6','symbol' => 'C','name' => 'Création et maintenance de données numériques','archive' => NULL), + array('id' => '30','fk_course_plan' => '6','symbol' => 'G','name' => 'Développement d’applications','archive' => NULL), + array('id' => '31','fk_course_plan' => '6','symbol' => 'H','name' => 'Délivrance et fonctionnement des applications','archive' => NULL), + array('id' => '32','fk_course_plan' => '7','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '33','fk_course_plan' => '7','symbol' => 'B','name' => 'Mise en service de serveurs et réseaux','archive' => NULL), + array('id' => '34','fk_course_plan' => '7','symbol' => 'C','name' => 'Garantie de l’exploitation TIC ','archive' => NULL), + array('id' => '35','fk_course_plan' => '7','symbol' => 'D','name' => 'Assistance aux utilisateurs','archive' => NULL), + array('id' => '36','fk_course_plan' => '7','symbol' => 'E','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '37','fk_course_plan' => '7','symbol' => 'F','name' => 'Travaux dans le cadre de projets','archive' => NULL) + ); + + foreach ($competence_domains as $competence_domain) + $this->db->table('competence_domain')->insert($competence_domain); + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php b/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php new file mode 100644 index 00000000..4cfc900a --- /dev/null +++ b/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php @@ -0,0 +1,19 @@ + '5','formation_number' => '88611','official_name' => ' Informaticienne / Informaticien Sys','date_begin' => '2020-11-19','archive' => NULL), + array('id' => '6','formation_number' => '88611','official_name' => ' Informaticienne / Informaticien Dev','date_begin' => '2020-11-19','archive' => NULL), + array('id' => '7','formation_number' => '88614','official_name' => ' Informaticienne d\'entreprise, Informaticien d\'entreprise','date_begin' => '0000-00-00','archive' => NULL) + ); + foreach ($course_plans as $course_plan){ + $this->db->table('course_plan')->insert($course_plan); + } + } +} + +?> \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addObjective2021Datas.php b/orif/plafor/Database/Seeds/addObjective2021Datas.php new file mode 100644 index 00000000..004db6db --- /dev/null +++ b/orif/plafor/Database/Seeds/addObjective2021Datas.php @@ -0,0 +1,434 @@ + '333','fk_operational_competence' => '75','symbol' => 'A1.1','taxonomy' => '3','name' => 'Ils clarifient les objectifs du projet ICT et ses paramètres généraux tels que coûts, durée, qualité, périmètre, responsabilités et méthodologie.','archive' => NULL), + array('id' => '334','fk_operational_competence' => '75','symbol' => 'A1.2','taxonomy' => '5','name' => 'Ils appliquent diverses techniques d’audition et d’observation (p. ex. questions ouvertes, questions fermées, réunion, workshop, technique du shadowing, simulation de la solution à rechercher en opérant un saut dans le temps.','archive' => NULL), + array('id' => '335','fk_operational_competence' => '75','symbol' => 'A1.3','taxonomy' => '4','name' => 'Ils analysent le contexte du système, procèdent à une délimitation du système et du contexte et identifient les interfaces.','archive' => NULL), + array('id' => '336','fk_operational_competence' => '75','symbol' => 'A1.4','taxonomy' => '5','name' => 'Ils élaborent des solutions pour prévenir les éventuels conflits d’objectifs.','archive' => NULL), + array('id' => '337','fk_operational_competence' => '75','symbol' => 'A1.5','taxonomy' => '5','name' => 'Ils transposent la définition exprimée dans le langage naturel (des parties prenantes) dans une documentation modélisée contenant des objectifs et des exigences de projet clairs, non ambigus et référençables.','archive' => NULL), + array('id' => '338','fk_operational_competence' => '75','symbol' => 'A1.6','taxonomy' => '4','name' => 'Ils vérifient les objectifs et exigences de projet définis quant à leur mesurabilité, cohé- rence, exhaustivité, nécessité, exactitude et référençabilité.','archive' => NULL), + array('id' => '339','fk_operational_competence' => '75','symbol' => 'A1.7','taxonomy' => '3','name' => 'Ils définissent les caractéristiques de traitement des exigences et objectifs de projet individuels (p. ex. gestion des versions, identificateur de référençabilité, description, auteur, source, criticité, priorité).','archive' => NULL), + array('id' => '340','fk_operational_competence' => '76','symbol' => 'A2.1','taxonomy' => '4','name' => 'Ils analysent les paramètres et les conditions données par le mandant.','archive' => NULL), + array('id' => '341','fk_operational_competence' => '76','symbol' => 'A2.2','taxonomy' => '4','name' => 'Ils pèsent les avantages et inconvénients de divers modèles de procédure planifiés ou agiles (itératifs, incrémentaux) en relation avec le projet ICT et sélectionnent le modèle ap- proprié.','archive' => NULL), + array('id' => '342','fk_operational_competence' => '76','symbol' => 'A2.3','taxonomy' => '5','name' => 'Ils adaptent le modèle de procédure aux spécificités du projet (process tailoring).','archive' => NULL), + array('id' => '343','fk_operational_competence' => '77','symbol' => 'A3.1','taxonomy' => '4','name' => 'Ils cherchent de façon ciblée et systématique des informations de sources numériques et analogiques.','archive' => NULL), + array('id' => '344','fk_operational_competence' => '77','symbol' => 'A3.2','taxonomy' => '4','name' => 'Ils identifient les sources fiables.','archive' => NULL), + array('id' => '345','fk_operational_competence' => '77','symbol' => 'A3.3','taxonomy' => '4','name' => 'Ils comparent plusieurs variantes issues des résultats obtenus et les évaluent.','archive' => NULL), + array('id' => '346','fk_operational_competence' => '77','symbol' => 'A3.4','taxonomy' => '4','name' => 'Ils montrent le potentiel technique des variantes et leurs risques.','archive' => NULL), + array('id' => '347','fk_operational_competence' => '77','symbol' => 'A3.5','taxonomy' => '5','name' => 'Ils établissent une preuve de concept technique (PoC).','archive' => NULL), + array('id' => '348','fk_operational_competence' => '78','symbol' => 'A4.1','taxonomy' => '3','name' => 'Ils découpent une tâche globale en activités plus restreintes, plus facilement évaluables et attribuables à une ressource.','archive' => NULL), + array('id' => '349','fk_operational_competence' => '78','symbol' => 'A4.2','taxonomy' => '4','name' => 'Ils identifient les activités selon la charge et la durée de travail.','archive' => NULL), + array('id' => '350','fk_operational_competence' => '78','symbol' => 'A4.3','taxonomy' => '4','name' => 'Ils évaluent la charge, la durée et le degré de complexité des activités.','archive' => NULL), + array('id' => '351','fk_operational_competence' => '78','symbol' => 'A4.4','taxonomy' => '4','name' => 'Ils clarifient les dépendances séquentielles des activités et en définissent l’ordre chrono- logique.','archive' => NULL), + array('id' => '352','fk_operational_competence' => '78','symbol' => 'A4.5','taxonomy' => '3','name' => 'Ils regroupent et priorisent les activités nécessaires à la réalisation d’un objectif inter- médiaire sur la base de directives temporelles ou fonctionnelles.','archive' => NULL), + array('id' => '353','fk_operational_competence' => '79','symbol' => 'A5.1','taxonomy' => '4','name' => 'Ils identifient le groupe cible et ses besoins en informations sur une solution ICT selon un catalogue des exigences.','archive' => NULL), + array('id' => '354','fk_operational_competence' => '79','symbol' => 'A5.2','taxonomy' => '4','name' => 'Ils identifient les caractéristiques des solutions ICT qui sont propres au groupe cible.','archive' => NULL), + array('id' => '355','fk_operational_competence' => '79','symbol' => 'A5.3','taxonomy' => '5','name' => 'Ils regroupent les constats tirés de ces caractéristiques sous une forme visuelle adaptée au groupe cible et au problème (p. ex. tableau à feuilles, tableau blanc, programme de présen- tation, vidéoconférence.','archive' => NULL), + array('id' => '356','fk_operational_competence' => '79','symbol' => 'A5.4','taxonomy' => '5','name' => 'Ils présentent leurs propositions de solution de façon probante et convaincante (p. ex. storytelling).','archive' => NULL), + array('id' => '357','fk_operational_competence' => '80','symbol' => 'A6.1','taxonomy' => '3','name' => 'Ils établissent une évaluation sur l’état d’avancement des mandats assignés (personnel- lement ou au moyen d’un outil).','archive' => NULL), + array('id' => '358','fk_operational_competence' => '80','symbol' => 'A6.2','taxonomy' => '4','name' => 'Ils catégorisent et priorisent les évaluations recueillies.','archive' => NULL), + array('id' => '359','fk_operational_competence' => '80','symbol' => 'A6.3','taxonomy' => '5','name' => 'Ils consolident les évaluations et élaborent, si nécessaire, des propositions de mesures correctives.','archive' => NULL), + array('id' => '360','fk_operational_competence' => '80','symbol' => 'A6.4','taxonomy' => '3','name' => 'Ils consignent l’état d’avancement du projet et le présentent sous forme visuelle.','archive' => NULL), + array('id' => '361','fk_operational_competence' => '80','symbol' => 'A6.5','taxonomy' => '3','name' => 'Ils font état, sous forme résumée, des résultats relatifs à l’avancement du projet selon le modèle de procédure spécifique au projet.','archive' => NULL), + array('id' => '362','fk_operational_competence' => '81','symbol' => 'A7.1','taxonomy' => '3','name' => 'Ils identifient auprès du mandant les personnes à impliquer.','archive' => NULL), + array('id' => '363','fk_operational_competence' => '81','symbol' => 'A7.2','taxonomy' => '3','name' => 'Ils définissent conjointement avec le mandant les critères et la procédure de réception ainsi que la chronologie de la remise.','archive' => NULL), + array('id' => '364','fk_operational_competence' => '81','symbol' => 'A7.3','taxonomy' => '3','name' => 'Ils mettent à disposition la documentation convenue dans le mandat de projet.','archive' => NULL), + array('id' => '365','fk_operational_competence' => '81','symbol' => 'A7.4','taxonomy' => '3','name' => 'Ils planifient une formation/instruction.','archive' => NULL), + array('id' => '366','fk_operational_competence' => '81','symbol' => 'A7.5','taxonomy' => '5','name' => 'Ils préparent les supports de formation.','archive' => NULL), + array('id' => '367','fk_operational_competence' => '81','symbol' => 'A7.6','taxonomy' => '3','name' => 'Ils procèdent à la réception du projet par le mandant selon les critères définis et établis- sent un procès-verbal de réception.','archive' => NULL), + array('id' => '368','fk_operational_competence' => '81','symbol' => 'A7.7','taxonomy' => '3','name' => 'Ils archivent et sauvegardent leur travail selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '369','fk_operational_competence' => '82','symbol' => 'B1.1','taxonomy' => '3','name' => 'Ils équipent leur ordinateur d’un système d’exploitation.','archive' => NULL), + array('id' => '370','fk_operational_competence' => '82','symbol' => 'B1.2','taxonomy' => '3','name' => 'Ils relient leur ordinateur au réseau et testent la connexion.','archive' => NULL), + array('id' => '371','fk_operational_competence' => '82','symbol' => 'B1.3','taxonomy' => '3','name' => 'Ils configurent les mesures de sécurité requises (pare-feu, systèmes antivirus, etc.) selon les directives de l’entreprise.','archive' => NULL), + array('id' => '372','fk_operational_competence' => '82','symbol' => 'B1.4','taxonomy' => '3','name' => 'Ils installent les logiciels, les testent et effectuent, si nécessaire, les mises à jour.','archive' => NULL), + array('id' => '373','fk_operational_competence' => '82','symbol' => 'B1.5','taxonomy' => '3','name' => 'Ils relient leur ordinateur aux autres périphériques et testent leur fonctionnement.','archive' => NULL), + array('id' => '374','fk_operational_competence' => '82','symbol' => 'B1.6','taxonomy' => '3','name' => 'Ils installent et règlent leurs bureau et chaise conformément aux principes ergono- miques.','archive' => NULL), + array('id' => '375','fk_operational_competence' => '83','symbol' => 'B2.1','taxonomy' => '4','name' => 'Ils analysent des demandes d’assistance complexes de façon systématique (p. ex. à l’aide d’un catalogue de questions ou d’une check-list).','archive' => NULL), + array('id' => '376','fk_operational_competence' => '83','symbol' => 'B2.2','taxonomy' => '5','name' => 'Au moyen de méthodes adéquates ou dans le cadre de collaborations, ils élaborent des solutions.','archive' => NULL), + array('id' => '377','fk_operational_competence' => '83','symbol' => 'B2.3','taxonomy' => '3','name' => 'Ils documentent les solutions selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '378','fk_operational_competence' => '83','symbol' => 'B2.4','taxonomy' => '3','name' => 'Ils préparent les solutions conformément au groupe cible (p. ex. pour l’assistance de 2e niveau) et les communiquent.','archive' => NULL), + array('id' => '379','fk_operational_competence' => '84','symbol' => 'B3.1','taxonomy' => '4','name' => 'Ils clarifient la situation en matière de sécurité auprès du mandant en posant des ques- tions ciblées sur les systèmes, réseaux, logiciels et données.','archive' => NULL), + array('id' => '380','fk_operational_competence' => '84','symbol' => 'B3.2','taxonomy' => '3','name' => 'Ils informent le mandant sur les dangers liés au réseau et au traitement des données sensibles.','archive' => NULL), + array('id' => '381','fk_operational_competence' => '84','symbol' => 'B3.3','taxonomy' => '5','name' => 'Ils proposent les mesures de protection nécessaires et recommandées pour les do- maines examinés.','archive' => NULL), + array('id' => '382','fk_operational_competence' => '84','symbol' => 'B3.4','taxonomy' => '4','name' => 'Ils forment les collaborateurs dans l’application des directives informatiques propres à l’entreprise. (C5) b4.1 Ils identifient les informations déterminantes sur les processus (intitulé, événement dé- clencheur, résultat, déclencheur, destinataire).','archive' => NULL), + array('id' => '383','fk_operational_competence' => '85','symbol' => 'B4.2','taxonomy' => '4','name' => 'Ils découpent, dans le cadre d’une analyse des tâches, les processus métier en étapes individuelles.','archive' => NULL), + array('id' => '384','fk_operational_competence' => '85','symbol' => 'B4.3','taxonomy' => '3','name' => 'Ils documentent le déroulement du processus et le représentent graphiquement selon les standards de description reconnus et usuels.','archive' => NULL), + array('id' => '385','fk_operational_competence' => '85','symbol' => 'B4.4','taxonomy' => '3','name' => 'Ils précisent le déroulement du processus avec des informations complémentaires telles que les outils requis, les exécutants et la description du résultat (output).','archive' => NULL), + array('id' => '386','fk_operational_competence' => '86','symbol' => 'C1.1','taxonomy' => '4','name' => 'Ils examinent les données issues de sources de données structurées ou non structurées avant de les classer selon le modèle 4V.','archive' => NULL), + array('id' => '387','fk_operational_competence' => '86','symbol' => 'C1.2','taxonomy' => '4','name' => 'Ils analysent les données quant à leur précision, à leur concision et à leur incohérence et les nettoient si nécessaire.','archive' => NULL), + array('id' => '388','fk_operational_competence' => '86','symbol' => 'C1.3','taxonomy' => '4','name' => 'Ils recueillent, à partir des formes d’analyse existantes (rapports), des indicateurs/points de repère pour la création du modèle.','archive' => NULL), + array('id' => '389','fk_operational_competence' => '86','symbol' => 'C1.4','taxonomy' => '3','name' => 'Ils définissent, selon le type de donnée, des cas de test appropriés pour l’exactitude des données.','archive' => NULL), + array('id' => '390','fk_operational_competence' => '86','symbol' => 'C1.5','taxonomy' => '4','name' => 'Ils définissent une structure adéquate pour les données nettoyées.','archive' => NULL), + array('id' => '391','fk_operational_competence' => '86','symbol' => 'C1.6','taxonomy' => '3','name' => 'Ils normalisent le modèle de données.','archive' => NULL), + array('id' => '392','fk_operational_competence' => '86','symbol' => 'C1.7','taxonomy' => '3','name' => 'Ils représentent le modèle sous une forme appropriée.','archive' => NULL), + array('id' => '393','fk_operational_competence' => '87','symbol' => 'C2.1','taxonomy' => '3','name' => 'Ils choisissent un dispositif de stockage de données numériques approprié (p. ex. objet- relationnel, relationnel, distribué/centralisé).','archive' => NULL), + array('id' => '394','fk_operational_competence' => '87','symbol' => 'C2.2','taxonomy' => '3','name' => 'Ils implémentent le modèle de données normalisé pour le stockage en tenant compte de l’intégrité référentielle.','archive' => NULL), + array('id' => '395','fk_operational_competence' => '87','symbol' => 'C2.3','taxonomy' => '5','name' => 'Ils planifient les tests de fonction et de performance et préparent les données de test requises.','archive' => NULL), + array('id' => '396','fk_operational_competence' => '87','symbol' => 'C2.4','taxonomy' => '3','name' => 'Ils exécutent les tests de fonction et de performance.','archive' => NULL), + array('id' => '397','fk_operational_competence' => '87','symbol' => 'C2.5','taxonomy' => '4','name' => 'Ils évaluent les tests de fonction et de performance.','archive' => NULL), + array('id' => '398','fk_operational_competence' => '87','symbol' => 'C2.6','taxonomy' => '5','name' => 'Ils planifient, à partir de divers systèmes source, les migrations de données vers un sys- tème cible et les exécutent.','archive' => NULL), + array('id' => '399','fk_operational_competence' => '87','symbol' => 'C2.7','taxonomy' => '4','name' => 'Ils vérifient l’exhaustivité, l’intégrité et l’exactitude des données migrées vers le système cible.','archive' => NULL), + array('id' => '400','fk_operational_competence' => '88','symbol' => 'C3.1','taxonomy' => '4','name' => 'Ils identifient les données sensibles et les catégorisent.','archive' => NULL), + array('id' => '401','fk_operational_competence' => '88','symbol' => 'C3.2','taxonomy' => '4','name' => 'Ils clarifient les mécanismes de protection nécessaires selon la sensibilité des données et les qualifient.','archive' => NULL), + array('id' => '402','fk_operational_competence' => '88','symbol' => 'C3.4','taxonomy' => '3','name' => 'Ils élaborent un concept de sécurité des données et des rôles conformément au mandat.','archive' => NULL), + array('id' => '403','fk_operational_competence' => '88','symbol' => 'C3.5','taxonomy' => '3','name' => 'Ils créent une sauvegarde et vérifient si la restauration est réussie.','archive' => NULL), + array('id' => '404','fk_operational_competence' => '88','symbol' => 'C3.6','taxonomy' => '3','name' => 'Ils implémentent les autorisations d’accès selon le concept.','archive' => NULL), + array('id' => '405','fk_operational_competence' => '88','symbol' => 'C3.7','taxonomy' => '3','name' => 'Ils chiffrent les données selon le concept.','archive' => NULL), + array('id' => '406','fk_operational_competence' => '88','symbol' => 'C3.8','taxonomy' => '4','name' => 'Ils vérifient l’efficacité des mécanismes de sécurité et de protection installés.','archive' => NULL), + array('id' => '407','fk_operational_competence' => '89','symbol' => 'C4.1','taxonomy' => '3','name' => 'Ils importent les données dans un logiciel d’analyse approprié.','archive' => NULL), + array('id' => '408','fk_operational_competence' => '89','symbol' => 'C4.2','taxonomy' => '4','name' => 'Ils procèdent à une analyse exploratoire des données et identifient les éventuelles er- reurs de données.','archive' => NULL), + array('id' => '409','fk_operational_competence' => '89','symbol' => 'C4.3','taxonomy' => '4','name' => 'Ils comparent les méthodes de traitement et les formes de représentation établies et les évaluent.','archive' => NULL), + array('id' => '410','fk_operational_competence' => '89','symbol' => 'C4.4','taxonomy' => '3','name' => 'Ils choisissent des formes de représentation adaptées et les appliquent.','archive' => NULL), + array('id' => '411','fk_operational_competence' => '89','symbol' => 'C4.5','taxonomy' => '3','name' => 'Ils vérifient la validité des données traitées par échantillonnage.','archive' => NULL), + array('id' => '412','fk_operational_competence' => '89','symbol' => 'C4.6','taxonomy' => '3','name' => 'Ils mettent les données à disposition sous forme anonymisée.','archive' => NULL), + array('id' => '413','fk_operational_competence' => '90','symbol' => 'D1.1','taxonomy' => '4','name' => 'Ils recueillent les besoins des clients en matière de processus ICT sous forme d’exigences techniques en les formulant de façon compréhensible et sans tenir compte de la solution.','archive' => NULL), + array('id' => '414','fk_operational_competence' => '90','symbol' => 'D1.2','taxonomy' => '4','name' => 'Des besoins identifiés, ils déduisent une proposition de solution technique et la consi- gnent de façon claire.','archive' => NULL), + array('id' => '415','fk_operational_competence' => '90','symbol' => 'D1.3','taxonomy' => '4','name' => 'Ils automatisent les processus ICT définis au moyen de langages de script, de l’infrastructure en tant que code (IaC) et/ou de frameworks d’automatisation.','archive' => NULL), + array('id' => '416','fk_operational_competence' => '91','symbol' => 'D2.1','taxonomy' => '4','name' => 'Ils identifient les processus de livraison existants, les interfaces et les parties prenantes concernées.','archive' => NULL), + array('id' => '417','fk_operational_competence' => '91','symbol' => 'D2.2','taxonomy' => '4','name' => 'Ils déterminent la plateforme appropriée, les extensions et adaptations nécessaires en fonction des exigences définies pour la solution.','archive' => NULL), + array('id' => '418','fk_operational_competence' => '91','symbol' => 'D2.3','taxonomy' => '3','name' => 'Ils documentent l’entier du processus de livraison de façon claire et transparente.','archive' => NULL), + array('id' => '419','fk_operational_competence' => '91','symbol' => 'D2.4','taxonomy' => '3','name' => 'Ils présentent de façon claire et compréhensible le processus de livraison aux parties prenantes impliquées.','archive' => NULL), + array('id' => '420','fk_operational_competence' => '91','symbol' => 'D2.5','taxonomy' => '3','name' => 'Ils élaborent un concept de tests complet pour tester les fonctions et l’intégration de la livraison.','archive' => NULL), + array('id' => '421','fk_operational_competence' => '92','symbol' => 'D3.1','taxonomy' => '3','name' => 'Ils mettent à disposition la plateforme d’exécution définitive.','archive' => NULL), + array('id' => '422','fk_operational_competence' => '92','symbol' => 'D3.2','taxonomy' => '3','name' => 'Ils configurent la plateforme d’exécution conformément aux exigences planifiées.','archive' => NULL), + array('id' => '423','fk_operational_competence' => '92','symbol' => 'D3.3','taxonomy' => '3','name' => 'Ils documentent de façon compréhensible la configuration de la plateforme d’exécution.','archive' => NULL), + array('id' => '424','fk_operational_competence' => '92','symbol' => 'D3.4','taxonomy' => '3','name' => 'Ils vérifient si la plateforme mise au point peut être acceptée conformément aux exi- gences définies.','archive' => NULL), + array('id' => '425','fk_operational_competence' => '93','symbol' => 'D4.1','taxonomy' => '3','name' => 'Ils demandent les autorisations et les droits d’accès requis pour la mise en service.','archive' => NULL), + array('id' => '426','fk_operational_competence' => '93','symbol' => 'D4.2','taxonomy' => '4','name' => 'Ils coordonnent les adaptations à entreprendre sur les systèmes périphériques.','archive' => NULL), + array('id' => '427','fk_operational_competence' => '93','symbol' => 'D4.3','taxonomy' => '3','name' => 'Ils exécutent les scripts de déploiement pour la mise en service.','archive' => NULL), + array('id' => '428','fk_operational_competence' => '93','symbol' => 'D4.4','taxonomy' => '3','name' => 'Ils effectuent le déploiement logiciel.','archive' => NULL), + array('id' => '429','fk_operational_competence' => '93','symbol' => 'D4.5','taxonomy' => '4','name' => 'Ils coordonnent le déploiement matériel avec les parties prenantes concernées.','archive' => NULL), + array('id' => '430','fk_operational_competence' => '93','symbol' => 'D4.6','taxonomy' => '3','name' => 'Ils informent régulièrement le mandant sur l’état d’avancement de la mise en service.','archive' => NULL), + array('id' => '431','fk_operational_competence' => '93','symbol' => 'D4.7','taxonomy' => '4','name' => 'Ils testent les fonctions et la sécurité de la solution ICT mise en service.','archive' => NULL), + array('id' => '432','fk_operational_competence' => '94','symbol' => 'E1.1','taxonomy' => '5','name' => 'Ils élaborent une proposition de solution pour un réseau à l’attention des parties pre- nantes en tenant compte des spécificités de l’entreprise, des standards techniques et des prescriptions légales.','archive' => NULL), + array('id' => '433','fk_operational_competence' => '94','symbol' => 'E1.2','taxonomy' => '4','name' => 'Ils évaluent la probabilité de panne du nouveau réseau et planifient, si nécessaire, des redondances.','archive' => NULL), + array('id' => '434','fk_operational_competence' => '94','symbol' => 'E1.3','taxonomy' => '5','name' => 'Ils conçoivent l’infrastructure réseau (LAN) en tenant compte des conditions spatiales et d’autres consignes.','archive' => NULL), + array('id' => '435','fk_operational_competence' => '94','symbol' => 'E1.4','taxonomy' => '5','name' => 'Ils conçoivent des mesures de sécurité physiques et systémiques dans le réseau local.','archive' => NULL), + array('id' => '436','fk_operational_competence' => '94','symbol' => 'E1.5','taxonomy' => '3','name' => 'Ils documentent de façon systématique et exhaustive la structure du réseau physique et logique.','archive' => NULL), + array('id' => '437','fk_operational_competence' => '94','symbol' => 'E1.6','taxonomy' => '4','name' => 'Ils sélectionnent un fournisseur de services Internet approprié (ISP) en fonction des be- soins prédéfinis.','archive' => NULL), + array('id' => '438','fk_operational_competence' => '94','symbol' => 'E1.7','taxonomy' => '5','name' => 'Ils élaborent un concept de tests en vue de vérifier le fonctionnement, la performance et la sécurité du réseau.','archive' => NULL), + array('id' => '439','fk_operational_competence' => '95','symbol' => 'E2.1','taxonomy' => '4','name' => 'Ils définissent les composants du réseau appropriés en tenant compte des besoins et du budget alloué.','archive' => NULL), + array('id' => '440','fk_operational_competence' => '95','symbol' => 'E2.2','taxonomy' => '3','name' => 'Ils établissent une liste de matériel complète selon le processus de commande interne.','archive' => NULL), + array('id' => '441','fk_operational_competence' => '95','symbol' => 'E2.3','taxonomy' => '4','name' => 'A la réception de la commande, ils vérifient que l’intégralité des composants du réseau a bien été livrée.','archive' => NULL), + array('id' => '442','fk_operational_competence' => '95','symbol' => 'E2.4','taxonomy' => '5','name' => 'Ils établissent un concept de configuration clair et compréhensible.','archive' => NULL), + array('id' => '443','fk_operational_competence' => '95','symbol' => 'E2.5','taxonomy' => '3','name' => 'Ils procèdent à des préconfigurations et à des mises à jour des composants du réseau.','archive' => NULL), + array('id' => '444','fk_operational_competence' => '95','symbol' => 'E2.6','taxonomy' => '3','name' => 'Ils installent les composants du réseau chez le client et effectuent la configuration finale.','archive' => NULL), + array('id' => '445','fk_operational_competence' => '95','symbol' => 'E2.7','taxonomy' => '3','name' => 'Ils testent la capacité de fonctionnement des composants du réseau installés.','archive' => NULL), + array('id' => '446','fk_operational_competence' => '95','symbol' => 'E2.8','taxonomy' => '3','name' => 'Ils expliquent en mots simples le fonctionnement du réseau au client.','archive' => NULL), + array('id' => '447','fk_operational_competence' => '96','symbol' => 'E3.1','taxonomy' => '3','name' => 'Ils vérifient les composants du réseau par des contrôles visuels et définissent, si néces- saire, des mesures de maintenance.','archive' => NULL), + array('id' => '448','fk_operational_competence' => '96','symbol' => 'E3.2','taxonomy' => '4','name' => 'Ils contrôlent la journalisation (log) des différents composants du réseau.','archive' => NULL), + array('id' => '449','fk_operational_competence' => '96','symbol' => 'E3.3','taxonomy' => '4','name' => 'Ils prennent des mesures à court ou à long terme pour développer les composants du réseau.','archive' => NULL), + array('id' => '450','fk_operational_competence' => '96','symbol' => 'E3.4','taxonomy' => '3','name' => 'Ils effectuent les mises à jour et les mises à niveau des composants selon le concept d’exploitation établi et les instructions des fabricants.','archive' => NULL), + array('id' => '451','fk_operational_competence' => '96','symbol' => 'E3.5','taxonomy' => '3','name' => 'Ils documentent avec rigueur les travaux de maintenance effectués.','archive' => NULL), + array('id' => '452','fk_operational_competence' => '96','symbol' => 'E3.6','taxonomy' => '3','name' => 'Ils informent la partie prenante concernée du cycle de vie des appareils et des normes énergétiques et écologiques actuelles.','archive' => NULL), + array('id' => '453','fk_operational_competence' => '96','symbol' => 'E3.7','taxonomy' => '3','name' => 'Ils évaluent le moment où les appareils devront être remplacés.','archive' => NULL), + array('id' => '454','fk_operational_competence' => '97','symbol' => 'E4.1','taxonomy' => '4','name' => 'Ils analysent et évaluent les risques potentiels en matière de sécurité du réseau au moyen d’outils actuels et spécifiques à l’exploitation.','archive' => NULL), + array('id' => '455','fk_operational_competence' => '97','symbol' => 'E4.2','taxonomy' => '3','name' => 'Ils implémentent des outils et des composants sécuritaires.','archive' => NULL), + array('id' => '456','fk_operational_competence' => '97','symbol' => 'E4.3','taxonomy' => '3','name' => 'Ils testent les mesures de sécurité implémentées de façon systématique, selon le con- cept de tests.','archive' => NULL), + array('id' => '457','fk_operational_competence' => '97','symbol' => 'E4.4','taxonomy' => '3','name' => 'Ils documentent le fonctionnement des mesures de sécurité implémentées.','archive' => NULL), + array('id' => '458','fk_operational_competence' => '98','symbol' => 'E5.1','taxonomy' => '4','name' => 'Ils analysent les causes possibles de la capacité de performance limitée du réseau.','archive' => NULL), + array('id' => '459','fk_operational_competence' => '98','symbol' => 'E5.2','taxonomy' => '4','name' => 'Ils analysent la charge du réseau et définissent, en tenant compte des conséquences envisageables, des mesures d’optimisation appropriées.','archive' => NULL), + array('id' => '460','fk_operational_competence' => '98','symbol' => 'E5.3','taxonomy' => '3','name' => 'Ils documentent les mesures d’optimisation de façon claire et compréhensible.','archive' => NULL), + array('id' => '461','fk_operational_competence' => '98','symbol' => 'E5.4','taxonomy' => '3','name' => 'Ils adaptent la configuration des composants du réseau en fonction des mesures d’optimisation définies.','archive' => NULL), + array('id' => '462','fk_operational_competence' => '98','symbol' => 'E5.5','taxonomy' => '4','name' => 'Ils testent le fonctionnement du réseau.','archive' => NULL), + array('id' => '463','fk_operational_competence' => '99','symbol' => 'E6.1','taxonomy' => '4','name' => 'A l’aide des outils de monitorage donnés, ils surveillent les réseaux de façon continue et fiable.','archive' => NULL), + array('id' => '464','fk_operational_competence' => '99','symbol' => 'E6.2','taxonomy' => '4','name' => 'Ils vérifient la disponibilité et la capacité de fonctionnement des composants du réseau et la charge du réseau.','archive' => NULL), + array('id' => '465','fk_operational_competence' => '99','symbol' => 'E6.3','taxonomy' => '4','name' => 'Ils priorisent les messages et les alertes selon leur niveau d’urgence et définissent les mesures appropriées.','archive' => NULL), + array('id' => '466','fk_operational_competence' => '99','symbol' => 'E6.4','taxonomy' => '3','name' => 'Ils localisent et identifient les erreurs au niveau des composants du réseau en appliquant une procédure structurée. (C4) e6.5. Ils organisent la procédure de suppression des erreurs en équipe ou avec des partenaires externes.','archive' => NULL), + array('id' => '467','fk_operational_competence' => '100','symbol' => 'F1.1','taxonomy' => '5','name' => 'Ils élaborent à l’attention des parties prenantes des propositions de solution pour les systèmes de serveurs et leurs services en tenant compte des spécificités de l’entreprise, des normes/standards techniques, des prescriptions légales ainsi que de la protection informa- tique de base.','archive' => NULL), + array('id' => '468','fk_operational_competence' => '100','symbol' => 'F1.2','taxonomy' => '3','name' => 'Ils clarifient de façon compréhensible les questions des parties prenantes au sujet des propositions de solutions et soumettent les besoins de celles-ci à un examen critique.','archive' => NULL), + array('id' => '469','fk_operational_competence' => '100','symbol' => 'F1.3','taxonomy' => '3','name' => 'Ils consignent les variantes de solution avec toutes les exigences.','archive' => NULL), + array('id' => '470','fk_operational_competence' => '100','symbol' => 'F1.4','taxonomy' => '4','name' => 'Ils déterminent les plateformes appropriées et les paramètres de performance en se fondant sur des critères d’évaluation mesurables.','archive' => NULL), + array('id' => '471','fk_operational_competence' => '100','symbol' => 'F1.5','taxonomy' => '4','name' => 'Ils sélectionnent le matériel et les logiciels appropriés en adoptant une démarche pros- pective et en tenant compte des conditions cadres.','archive' => NULL), + array('id' => '472','fk_operational_competence' => '100','symbol' => 'F1.6','taxonomy' => '4','name' => 'Ils définissent les services appropriés avec les ressources nécessaires en tenant compte des dépendances déterminantes et des conséquences envisageables.','archive' => NULL), + array('id' => '473','fk_operational_competence' => '100','symbol' => 'F1.7','taxonomy' => '3','name' => 'Ils établissent un concept de tests afin de vérifier le fonctionnement, la performance ainsi que la sécurité des systèmes et services.','archive' => NULL), + array('id' => '474','fk_operational_competence' => '101','symbol' => 'F2.1','taxonomy' => '3','name' => 'Ils se procurent les composants et les ressources choisis pour le système de serveur selon les processus de l’entreprise.','archive' => NULL), + array('id' => '475','fk_operational_competence' => '101','symbol' => 'F2.2','taxonomy' => '3','name' => 'Ils installent les composants et les services selon la planification établie, les exigences internes ainsi que les meilleures pratiques et les configurent.','archive' => NULL), + array('id' => '476','fk_operational_competence' => '101','symbol' => 'F2.3','taxonomy' => '4','name' => 'Ils vérifient le fonctionnement du système de serveur au moyen de tests appropriés.','archive' => NULL), + array('id' => '477','fk_operational_competence' => '101','symbol' => 'F2.4','taxonomy' => '3','name' => 'Ils transposent le système de serveur dans l’environnement productif.','archive' => NULL), + array('id' => '478','fk_operational_competence' => '102','symbol' => 'F3.1','taxonomy' => '3','name' => 'Ils se procurent les ressources choisies pour le service du serveur selon les processus de l’entreprise.','archive' => NULL), + array('id' => '479','fk_operational_competence' => '102','symbol' => 'F3.2','taxonomy' => '3','name' => 'Ils installent et configurent le service du serveur conformément aux exigences, aux direc- tives, aux prescriptions légales et aux meilleures pratiques.','archive' => NULL), + array('id' => '480','fk_operational_competence' => '102','symbol' => 'F3.3','taxonomy' => '4','name' => 'Ils vérifient le fonctionnement du service du serveur au moyen de tests appropriés.','archive' => NULL), + array('id' => '481','fk_operational_competence' => '102','symbol' => 'F3.4','taxonomy' => '3','name' => 'Ils transposent le service du serveur dans l’environnement productif.','archive' => NULL), + array('id' => '482','fk_operational_competence' => '102','symbol' => 'F3.5','taxonomy' => '3','name' => 'Ils mettent à jour le manuel d’utilisation et le transmettent au mandant.','archive' => NULL), + array('id' => '483','fk_operational_competence' => '103','symbol' => 'F4.1','taxonomy' => '4','name' => 'Ils définissent les tâches de maintenance et leur cycle pour les systèmes de serveurs et leurs services.','archive' => NULL), + array('id' => '484','fk_operational_competence' => '103','symbol' => 'F4.2','taxonomy' => '3','name' => 'Ils exécutent les tâches de maintenance avec fiabilité et selon les consignes.','archive' => NULL), + array('id' => '485','fk_operational_competence' => '103','symbol' => 'F4.3','taxonomy' => '3','name' => 'Ils documentent de façon claire les tâches de maintenance exécutées.','archive' => NULL), + array('id' => '486','fk_operational_competence' => '103','symbol' => 'F4.4','taxonomy' => '3','name' => 'Ils testent les mises à jour et les installent dans l’environnement productif.','archive' => NULL), + array('id' => '487','fk_operational_competence' => '103','symbol' => 'F4.5','taxonomy' => '3','name' => 'Ils testent de façon systématique le fonctionnement, la performance et la sécurité des systèmes et des services.','archive' => NULL), + array('id' => '488','fk_operational_competence' => '103','symbol' => 'F4.6','taxonomy' => '3','name' => 'Ils documentent les interventions et les adaptations effectuées sur les systèmes et les services de façon compréhensible et respectent leur devoir de confidentialité.','archive' => NULL), + array('id' => '489','fk_operational_competence' => '104','symbol' => 'F5.1','taxonomy' => '3','name' => 'En concertation avec les parties prenantes, ils définissent les systèmes de serveurs et les services à surveiller.','archive' => NULL), + array('id' => '490','fk_operational_competence' => '104','symbol' => 'F5.2','taxonomy' => '4','name' => 'Ils déterminent les méthodes de surveillance appropriées.','archive' => NULL), + array('id' => '491','fk_operational_competence' => '104','symbol' => 'F5.3','taxonomy' => '4','name' => 'Ils définissent, en fonction de l’évaluation des risques, des valeurs limites sensées et les actions à entreprendre en cas de non-respect de ces valeurs.','archive' => NULL), + array('id' => '492','fk_operational_competence' => '104','symbol' => 'F5.4','taxonomy' => '4','name' => 'Ils vérifient à l’aide de tests périodiques le fonctionnement du système de surveillance et documentent les résultats.','archive' => NULL), + array('id' => '493','fk_operational_competence' => '104','symbol' => 'F5.5','taxonomy' => '4','name' => 'En cas de messages d’erreur ou d’alertes, ils engagent rapidement les mesures adé- quates.','archive' => NULL), + array('id' => '494','fk_operational_competence' => '105','symbol' => 'F6.1','taxonomy' => '5','name' => 'Ils élaborent en équipe un concept de sécurité pour les systèmes de serveurs et leurs services en appliquant les meilleures pratiques.','archive' => NULL), + array('id' => '495','fk_operational_competence' => '105','symbol' => 'F6.2','taxonomy' => '3','name' => 'Ils configurent de façon effective les éléments de sécurité.','archive' => NULL), + array('id' => '496','fk_operational_competence' => '105','symbol' => 'F6.3','taxonomy' => '4','name' => 'Ils testent à intervalles réguliers les systèmes de sécurité et documentent les résultats de façon compréhensible.','archive' => NULL), + array('id' => '497','fk_operational_competence' => '105','symbol' => 'F6.4','taxonomy' => '4','name' => 'Ils examinent les concepts de sécurité quant à leur actualité et, si nécessaire, les adap- tent en fonction des développements technologiques.','archive' => NULL), + array('id' => '498','fk_operational_competence' => '106','symbol' => 'F7.1','taxonomy' => '3','name' => 'Lors d’entretiens avec les parties prenantes, ils déterminent la perte maximale de don- nées admissible (RPO), la durée maximale d’interruption tolérable des systèmes de serveurs et de leurs services (RTO) ainsi que les durées de conservation des données et documentent leurs résultats.','archive' => NULL), + array('id' => '499','fk_operational_competence' => '106','symbol' => 'F7.2','taxonomy' => '4','name' => 'Ils vérifient si les systèmes et services actuels respectent les disponibilités définies.','archive' => NULL), + array('id' => '500','fk_operational_competence' => '106','symbol' => 'F7.3','taxonomy' => '5','name' => 'Ils conçoivent des solutions/mesures d’optimisation afin de garantir les disponibilités définies.','archive' => NULL), + array('id' => '501','fk_operational_competence' => '106','symbol' => 'F7.4','taxonomy' => '3','name' => 'Ils expliquent aux parties prenantes les solutions/mesures d’optimisation élaborées de manière compréhensible et claire en termes de rentabilité.','archive' => NULL), + array('id' => '502','fk_operational_competence' => '106','symbol' => 'F7.5','taxonomy' => '3','name' => 'Ils mettent en œuvre les solutions et/ou optimisations sur l’environnement concerné.','archive' => NULL), + array('id' => '503','fk_operational_competence' => '107','symbol' => 'F8.1','taxonomy' => '4','name' => 'En concertation avec les parties prenantes, ils définissent les données à sauvegarder ou à archiver.','archive' => NULL), + array('id' => '504','fk_operational_competence' => '107','symbol' => 'F8.2','taxonomy' => '4','name' => 'Ils établissent un concept complet de sauvegarde et d’archivage avec toutes les indica- tions déterminantes et dans le respect des prescriptions légales.','archive' => NULL), + array('id' => '505','fk_operational_competence' => '107','symbol' => 'F8.3','taxonomy' => '4','name' => 'Ils établissent un concept complet de reprise après sinistre avec toutes les indications déterminantes et dans le respect des prescriptions légales.','archive' => NULL), + array('id' => '506','fk_operational_competence' => '107','symbol' => 'F8.4','taxonomy' => '3','name' => 'Ils testent à intervalles réguliers la restaurabilité des données et des services et docu- mentent leurs résultats de façon compréhensible.','archive' => NULL), + array('id' => '507','fk_operational_competence' => '108','symbol' => 'A1.1','taxonomy' => '3','name' => 'Ils clarifient les objectifs du projet ICT et ses paramètres généraux tels que coûts, durée, qualité, périmètre, responsabilités et méthodologie.','archive' => NULL), + array('id' => '508','fk_operational_competence' => '108','symbol' => 'A1.2','taxonomy' => '5','name' => 'Ils appliquent diverses techniques d’audition et d’observation (p. ex. questions ouvertes, questions fermées, réunion, workshop, technique du shadowing, simulation de la solution à rechercher en opérant un saut dans le temps.','archive' => NULL), + array('id' => '509','fk_operational_competence' => '108','symbol' => 'A1.3','taxonomy' => '4','name' => 'Ils analysent le contexte du système, procèdent à une délimitation du système et du contexte et identifient les interfaces.','archive' => NULL), + array('id' => '510','fk_operational_competence' => '108','symbol' => 'A1.4','taxonomy' => '5','name' => 'Ils élaborent des solutions pour prévenir les éventuels conflits d’objectifs.','archive' => NULL), + array('id' => '511','fk_operational_competence' => '108','symbol' => 'A1.5','taxonomy' => '5','name' => 'Ils transposent la définition exprimée dans le langage naturel (des parties prenantes) dans une documentation modélisée contenant des objectifs et des exigences de projet clairs, non ambigus et référençables.','archive' => NULL), + array('id' => '512','fk_operational_competence' => '108','symbol' => 'A1.6','taxonomy' => '4','name' => 'Ils vérifient les objectifs et exigences de projet définis quant à leur mesurabilité, cohé- rence, exhaustivité, nécessité, exactitude et référençabilité.','archive' => NULL), + array('id' => '513','fk_operational_competence' => '108','symbol' => 'A1.7','taxonomy' => '3','name' => 'Ils définissent les caractéristiques de traitement des exigences et objectifs de projet individuels (p. ex. gestion des versions, identificateur de référençabilité, description, auteur, source, criticité, priorité).','archive' => NULL), + array('id' => '514','fk_operational_competence' => '109','symbol' => 'A2.1','taxonomy' => '4','name' => 'Ils analysent les paramètres et les conditions données par le mandant.','archive' => NULL), + array('id' => '515','fk_operational_competence' => '109','symbol' => 'A2.2','taxonomy' => '4','name' => 'Ils pèsent les avantages et inconvénients de divers modèles de procédure planifiés ou agiles (itératifs, incrémentaux) en relation avec le projet ICT et sélectionnent le modèle ap- proprié.','archive' => NULL), + array('id' => '516','fk_operational_competence' => '109','symbol' => 'A2.3','taxonomy' => '5','name' => 'Ils adaptent le modèle de procédure aux spécificités du projet (process tailoring).','archive' => NULL), + array('id' => '517','fk_operational_competence' => '110','symbol' => 'A3.1','taxonomy' => '4','name' => 'Ils cherchent de façon ciblée et systématique des informations de sources numériques et analogiques.','archive' => NULL), + array('id' => '518','fk_operational_competence' => '110','symbol' => 'A3.2','taxonomy' => '4','name' => 'Ils identifient les sources fiables.','archive' => NULL), + array('id' => '519','fk_operational_competence' => '110','symbol' => 'A3.3','taxonomy' => '4','name' => 'Ils comparent plusieurs variantes issues des résultats obtenus et les évaluent.','archive' => NULL), + array('id' => '520','fk_operational_competence' => '110','symbol' => 'A3.4','taxonomy' => '4','name' => 'Ils montrent le potentiel technique des variantes et leurs risques.','archive' => NULL), + array('id' => '521','fk_operational_competence' => '110','symbol' => 'A3.5','taxonomy' => '5','name' => 'Ils établissent une preuve de concept technique (PoC).','archive' => NULL), + array('id' => '522','fk_operational_competence' => '111','symbol' => 'A4.1','taxonomy' => '3','name' => 'Ils découpent une tâche globale en activités plus restreintes, plus facilement évaluables et attribuables à une ressource.','archive' => NULL), + array('id' => '523','fk_operational_competence' => '111','symbol' => 'A4.2','taxonomy' => '4','name' => 'Ils identifient les activités selon la charge et la durée de travail.','archive' => NULL), + array('id' => '524','fk_operational_competence' => '111','symbol' => 'A4.3','taxonomy' => '4','name' => 'Ils évaluent la charge, la durée et le degré de complexité des activités.','archive' => NULL), + array('id' => '525','fk_operational_competence' => '111','symbol' => 'A4.4','taxonomy' => '4','name' => 'Ils clarifient les dépendances séquentielles des activités et en définissent l’ordre chrono- logique.','archive' => NULL), + array('id' => '526','fk_operational_competence' => '111','symbol' => 'A4.5','taxonomy' => '3','name' => 'Ils regroupent et priorisent les activités nécessaires à la réalisation d’un objectif inter- médiaire sur la base de directives temporelles ou fonctionnelles.','archive' => NULL), + array('id' => '527','fk_operational_competence' => '112','symbol' => 'A5.1','taxonomy' => '4','name' => 'Ils identifient le groupe cible et ses besoins en informations sur une solution ICT selon un catalogue des exigences.','archive' => NULL), + array('id' => '528','fk_operational_competence' => '112','symbol' => 'A5.2','taxonomy' => '4','name' => 'Ils identifient les caractéristiques des solutions ICT qui sont propres au groupe cible.','archive' => NULL), + array('id' => '529','fk_operational_competence' => '112','symbol' => 'A5.3','taxonomy' => '5','name' => 'Ils regroupent les constats tirés de ces caractéristiques sous une forme visuelle adaptée au groupe cible et au problème (p. ex. tableau à feuilles, tableau blanc, programme de présen- tation, vidéoconférence.','archive' => NULL), + array('id' => '530','fk_operational_competence' => '112','symbol' => 'A5.4','taxonomy' => '5','name' => 'Ils présentent leurs propositions de solution de façon probante et convaincante (p. ex. storytelling).','archive' => NULL), + array('id' => '531','fk_operational_competence' => '113','symbol' => 'A6.1','taxonomy' => '3','name' => 'Ils établissent une évaluation sur l’état d’avancement des mandats assignés (personnel- lement ou au moyen d’un outil).','archive' => NULL), + array('id' => '532','fk_operational_competence' => '113','symbol' => 'A6.2','taxonomy' => '4','name' => 'Ils catégorisent et priorisent les évaluations recueillies.','archive' => NULL), + array('id' => '533','fk_operational_competence' => '113','symbol' => 'A6.3','taxonomy' => '5','name' => 'Ils consolident les évaluations et élaborent, si nécessaire, des propositions de mesures correctives.','archive' => NULL), + array('id' => '534','fk_operational_competence' => '113','symbol' => 'A6.4','taxonomy' => '3','name' => 'Ils consignent l’état d’avancement du projet et le présentent sous forme visuelle.','archive' => NULL), + array('id' => '535','fk_operational_competence' => '113','symbol' => 'A6.5','taxonomy' => '3','name' => 'Ils font état, sous forme résumée, des résultats relatifs à l’avancement du projet selon le modèle de procédure spécifique au projet.','archive' => NULL), + array('id' => '536','fk_operational_competence' => '114','symbol' => 'A7.1','taxonomy' => '3','name' => 'Ils identifient auprès du mandant les personnes à impliquer.','archive' => NULL), + array('id' => '537','fk_operational_competence' => '114','symbol' => 'A7.2','taxonomy' => '3','name' => 'Ils définissent conjointement avec le mandant les critères et la procédure de réception ainsi que la chronologie de la remise.','archive' => NULL), + array('id' => '538','fk_operational_competence' => '114','symbol' => 'A7.3','taxonomy' => '3','name' => 'Ils mettent à disposition la documentation convenue dans le mandat de projet.','archive' => NULL), + array('id' => '539','fk_operational_competence' => '114','symbol' => 'A7.4','taxonomy' => '3','name' => 'Ils planifient une formation/instruction.','archive' => NULL), + array('id' => '540','fk_operational_competence' => '114','symbol' => 'A7.5','taxonomy' => '5','name' => 'Ils préparent les supports de formation.','archive' => NULL), + array('id' => '541','fk_operational_competence' => '114','symbol' => 'A7.6','taxonomy' => '3','name' => 'Ils procèdent à la réception du projet par le mandant selon les critères définis et établis- sent un procès-verbal de réception.','archive' => NULL), + array('id' => '542','fk_operational_competence' => '114','symbol' => 'A7.7','taxonomy' => '3','name' => 'Ils archivent et sauvegardent leur travail selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '543','fk_operational_competence' => '115','symbol' => 'B1.1','taxonomy' => '3','name' => 'Ils équipent leur ordinateur d’un système d’exploitation.','archive' => NULL), + array('id' => '544','fk_operational_competence' => '115','symbol' => 'B1.2','taxonomy' => '3','name' => 'Ils relient leur ordinateur au réseau et testent la connexion.','archive' => NULL), + array('id' => '545','fk_operational_competence' => '115','symbol' => 'B1.3','taxonomy' => '3','name' => 'Ils configurent les mesures de sécurité requises (pare-feu, systèmes antivirus, etc.) selon les directives de l’entreprise.','archive' => NULL), + array('id' => '546','fk_operational_competence' => '115','symbol' => 'B1.4','taxonomy' => '3','name' => 'Ils installent les logiciels, les testent et effectuent, si nécessaire, les mises à jour.','archive' => NULL), + array('id' => '547','fk_operational_competence' => '115','symbol' => 'B1.5','taxonomy' => '3','name' => 'Ils relient leur ordinateur aux autres périphériques et testent leur fonctionnement.','archive' => NULL), + array('id' => '548','fk_operational_competence' => '115','symbol' => 'B1.6','taxonomy' => '3','name' => 'Ils installent et règlent leurs bureau et chaise conformément aux principes ergono- miques.','archive' => NULL), + array('id' => '549','fk_operational_competence' => '116','symbol' => 'B2.1','taxonomy' => '4','name' => 'Ils analysent des demandes d’assistance complexes de façon systématique (p. ex. à l’aide d’un catalogue de questions ou d’une check-list).','archive' => NULL), + array('id' => '550','fk_operational_competence' => '116','symbol' => 'B2.2','taxonomy' => '5','name' => 'Au moyen de méthodes adéquates ou dans le cadre de collaborations, ils élaborent des solutions.','archive' => NULL), + array('id' => '551','fk_operational_competence' => '116','symbol' => 'B2.3','taxonomy' => '3','name' => 'Ils documentent les solutions selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '552','fk_operational_competence' => '116','symbol' => 'B2.4','taxonomy' => '3','name' => 'Ils préparent les solutions conformément au groupe cible (p. ex. pour l’assistance de 2e niveau) et les communiquent.','archive' => NULL), + array('id' => '553','fk_operational_competence' => '117','symbol' => 'B3.1','taxonomy' => '4','name' => 'Ils clarifient la situation en matière de sécurité auprès du mandant en posant des ques- tions ciblées sur les systèmes, réseaux, logiciels et données.','archive' => NULL), + array('id' => '554','fk_operational_competence' => '117','symbol' => 'B3.2','taxonomy' => '3','name' => 'Ils informent le mandant sur les dangers liés au réseau et au traitement des données sensibles.','archive' => NULL), + array('id' => '555','fk_operational_competence' => '117','symbol' => 'B3.3','taxonomy' => '5','name' => 'Ils proposent les mesures de protection nécessaires et recommandées pour les do- maines examinés.','archive' => NULL), + array('id' => '556','fk_operational_competence' => '117','symbol' => 'B3.4','taxonomy' => '4','name' => 'Ils forment les collaborateurs dans l’application des directives informatiques propres à l’entreprise. (C5) b4.1 Ils identifient les informations déterminantes sur les processus (intitulé, événement dé- clencheur, résultat, déclencheur, destinataire).','archive' => NULL), + array('id' => '557','fk_operational_competence' => '118','symbol' => 'B4.2','taxonomy' => '4','name' => 'Ils découpent, dans le cadre d’une analyse des tâches, les processus métier en étapes individuelles.','archive' => NULL), + array('id' => '558','fk_operational_competence' => '118','symbol' => 'B4.3','taxonomy' => '3','name' => 'Ils documentent le déroulement du processus et le représentent graphiquement selon les standards de description reconnus et usuels.','archive' => NULL), + array('id' => '559','fk_operational_competence' => '118','symbol' => 'B4.4','taxonomy' => '3','name' => 'Ils précisent le déroulement du processus avec des informations complémentaires telles que les outils requis, les exécutants et la description du résultat (output).','archive' => NULL), + array('id' => '560','fk_operational_competence' => '119','symbol' => 'C1.1','taxonomy' => '4','name' => 'Ils examinent les données issues de sources de données structurées ou non structurées avant de les classer selon le modèle 4V.','archive' => NULL), + array('id' => '561','fk_operational_competence' => '119','symbol' => 'C1.2','taxonomy' => '4','name' => 'Ils analysent les données quant à leur précision, à leur concision et à leur incohérence et les nettoient si nécessaire.','archive' => NULL), + array('id' => '562','fk_operational_competence' => '119','symbol' => 'C1.3','taxonomy' => '4','name' => 'Ils recueillent, à partir des formes d’analyse existantes (rapports), des indicateurs/points de repère pour la création du modèle.','archive' => NULL), + array('id' => '563','fk_operational_competence' => '119','symbol' => 'C1.4','taxonomy' => '3','name' => 'Ils définissent, selon le type de donnée, des cas de test appropriés pour l’exactitude des données.','archive' => NULL), + array('id' => '564','fk_operational_competence' => '119','symbol' => 'C1.5','taxonomy' => '4','name' => 'Ils définissent une structure adéquate pour les données nettoyées.','archive' => NULL), + array('id' => '565','fk_operational_competence' => '119','symbol' => 'C1.6','taxonomy' => '3','name' => 'Ils normalisent le modèle de données.','archive' => NULL), + array('id' => '566','fk_operational_competence' => '119','symbol' => 'C1.7','taxonomy' => '3','name' => 'Ils représentent le modèle sous une forme appropriée.','archive' => NULL), + array('id' => '567','fk_operational_competence' => '120','symbol' => 'C2.1','taxonomy' => '3','name' => 'Ils choisissent un dispositif de stockage de données numériques approprié (p. ex. objet- relationnel, relationnel, distribué/centralisé).','archive' => NULL), + array('id' => '568','fk_operational_competence' => '120','symbol' => 'C2.2','taxonomy' => '3','name' => 'Ils implémentent le modèle de données normalisé pour le stockage en tenant compte de l’intégrité référentielle.','archive' => NULL), + array('id' => '569','fk_operational_competence' => '120','symbol' => 'C2.3','taxonomy' => '5','name' => 'Ils planifient les tests de fonction et de performance et préparent les données de test requises.','archive' => NULL), + array('id' => '570','fk_operational_competence' => '120','symbol' => 'C2.4','taxonomy' => '3','name' => 'Ils exécutent les tests de fonction et de performance.','archive' => NULL), + array('id' => '571','fk_operational_competence' => '120','symbol' => 'C2.5','taxonomy' => '4','name' => 'Ils évaluent les tests de fonction et de performance.','archive' => NULL), + array('id' => '572','fk_operational_competence' => '120','symbol' => 'C2.6','taxonomy' => '5','name' => 'Ils planifient, à partir de divers systèmes source, les migrations de données vers un sys- tème cible et les exécutent.','archive' => NULL), + array('id' => '573','fk_operational_competence' => '120','symbol' => 'C2.7','taxonomy' => '4','name' => 'Ils vérifient l’exhaustivité, l’intégrité et l’exactitude des données migrées vers le système cible.','archive' => NULL), + array('id' => '574','fk_operational_competence' => '121','symbol' => 'C3.1','taxonomy' => '4','name' => 'Ils identifient les données sensibles et les catégorisent.','archive' => NULL), + array('id' => '575','fk_operational_competence' => '121','symbol' => 'C3.2','taxonomy' => '4','name' => 'Ils clarifient les mécanismes de protection nécessaires selon la sensibilité des données et les qualifient.','archive' => NULL), + array('id' => '576','fk_operational_competence' => '121','symbol' => 'C3.4','taxonomy' => '3','name' => 'Ils élaborent un concept de sécurité des données et des rôles conformément au mandat.','archive' => NULL), + array('id' => '577','fk_operational_competence' => '121','symbol' => 'C3.5','taxonomy' => '3','name' => 'Ils créent une sauvegarde et vérifient si la restauration est réussie.','archive' => NULL), + array('id' => '578','fk_operational_competence' => '121','symbol' => 'C3.6','taxonomy' => '3','name' => 'Ils implémentent les autorisations d’accès selon le concept.','archive' => NULL), + array('id' => '579','fk_operational_competence' => '121','symbol' => 'C3.7','taxonomy' => '3','name' => 'Ils chiffrent les données selon le concept.','archive' => NULL), + array('id' => '580','fk_operational_competence' => '121','symbol' => 'C3.8','taxonomy' => '4','name' => 'Ils vérifient l’efficacité des mécanismes de sécurité et de protection installés.','archive' => NULL), + array('id' => '581','fk_operational_competence' => '122','symbol' => 'C4.1','taxonomy' => '3','name' => 'Ils importent les données dans un logiciel d’analyse approprié.','archive' => NULL), + array('id' => '582','fk_operational_competence' => '122','symbol' => 'C4.2','taxonomy' => '4','name' => 'Ils procèdent à une analyse exploratoire des données et identifient les éventuelles er- reurs de données.','archive' => NULL), + array('id' => '583','fk_operational_competence' => '122','symbol' => 'C4.3','taxonomy' => '4','name' => 'Ils comparent les méthodes de traitement et les formes de représentation établies et les évaluent.','archive' => NULL), + array('id' => '584','fk_operational_competence' => '122','symbol' => 'C4.4','taxonomy' => '3','name' => 'Ils choisissent des formes de représentation adaptées et les appliquent.','archive' => NULL), + array('id' => '585','fk_operational_competence' => '122','symbol' => 'C4.5','taxonomy' => '3','name' => 'Ils vérifient la validité des données traitées par échantillonnage.','archive' => NULL), + array('id' => '586','fk_operational_competence' => '122','symbol' => 'C4.6','taxonomy' => '3','name' => 'Ils mettent les données à disposition sous forme anonymisée.','archive' => NULL), + array('id' => '587','fk_operational_competence' => '123','symbol' => 'G1.1','taxonomy' => '3','name' => 'Ils consignent les besoins du client sous forme d’exigences techniques et spécifiques à son activité professionnelle.','archive' => NULL), + array('id' => '588','fk_operational_competence' => '123','symbol' => 'G1.2','taxonomy' => '5','name' => 'Ils développent en équipe des modèles utilisateur sur la base de personas.','archive' => NULL), + array('id' => '589','fk_operational_competence' => '123','symbol' => 'G1.3','taxonomy' => '4','name' => 'Ils vérifient les besoins techniques et spécifiques à l’activité professionnelle quant à leur cohérence, exhaustivité et mesurabilité.','archive' => NULL), + array('id' => '590','fk_operational_competence' => '123','symbol' => 'G1.4','taxonomy' => '4','name' => 'Ils dressent le catalogue des besoins selon des critères spécifiques à l’activité ou au pro- jet et les consignent.','archive' => NULL), + array('id' => '591','fk_operational_competence' => '123','symbol' => 'G1.5','taxonomy' => '3','name' => 'Ils attribuent une dénomination explicite aux besoins.','archive' => NULL), + array('id' => '592','fk_operational_competence' => '123','symbol' => 'G1.6','taxonomy' => '4','name' => 'Ils évaluent en équipe l’investissement en temps, la complexité, le périmètre et la priori- sation des lots de travail.','archive' => NULL), + array('id' => '593','fk_operational_competence' => '123','symbol' => 'G1.7','taxonomy' => '3','name' => 'Ils vérifient la validité des besoins avec les parties prenantes concernées.','archive' => NULL), + array('id' => '594','fk_operational_competence' => '123','symbol' => 'G1.8','taxonomy' => '3','name' => 'Ils documentent en continu les besoins techniques et spécifiques à l’activité profession- nelle.','archive' => NULL), + array('id' => '595','fk_operational_competence' => '124','symbol' => 'G2.1','taxonomy' => '5','name' => 'Ils développent des maquettes ou des modèles d’interfaces en utilisant des outils gra- phiques appropriés et en tenant compte des directives et des consignes conceptuelles.','archive' => NULL), + array('id' => '596','fk_operational_competence' => '124','symbol' => 'G2.2','taxonomy' => '4','name' => 'Ils identifient les éléments problématiques des interfaces utilisateur.','archive' => NULL), + array('id' => '597','fk_operational_competence' => '124','symbol' => 'G2.3','taxonomy' => '4','name' => 'Ils développent des prototypes des interfaces utilisateur.','archive' => NULL), + array('id' => '598','fk_operational_competence' => '124','symbol' => 'G2.4','taxonomy' => '4','name' => 'Ils vérifient la faisabilité des interfaces utilisateur en tenant compte des aspects déter- minants.','archive' => NULL), + array('id' => '599','fk_operational_competence' => '124','symbol' => 'G2.5','taxonomy' => '3','name' => 'Ils discutent des modèles ou prototypes avec les parties prenantes et proposent des solutions alternatives pour les éléments non réalisables sur le plan technique.','archive' => NULL), + array('id' => '600','fk_operational_competence' => '124','symbol' => 'G2.6','taxonomy' => '5','name' => 'Ils développent des interfaces utilisateur fonctionnelles sur la base des prototypes.','archive' => NULL), + array('id' => '601','fk_operational_competence' => '125','symbol' => 'G3.1','taxonomy' => '4','name' => 'Ils clarifient les questions de sécurité relatives à l’environnement système de façon prospective et en déduisent les risques potentiels.','archive' => NULL), + array('id' => '602','fk_operational_competence' => '125','symbol' => 'G3.2','taxonomy' => '3','name' => 'Ils se procurent en équipe ou au sein de la communauté les informations pertinentes relatives à la sécurité (p. ex. OWASP).','archive' => NULL), + array('id' => '603','fk_operational_competence' => '125','symbol' => 'G3.3','taxonomy' => '3','name' => 'Ils consignent de façon compréhensible les risques de sécurité identifiés et les mesures en résultant.','archive' => NULL), + array('id' => '604','fk_operational_competence' => '125','symbol' => 'G3.4','taxonomy' => '3','name' => 'Ils expliquent au sein de leur équipe les mesures prises pour sécuriser les applications et les interfaces.','archive' => NULL), + array('id' => '605','fk_operational_competence' => '125','symbol' => 'G3.5','taxonomy' => '3','name' => 'Ils adaptent le catalogue des exigences en fonction de leurs constats et en discutent avec la partie prenante.','archive' => NULL), + array('id' => '606','fk_operational_competence' => '126','symbol' => 'G4.1','taxonomy' => '5','name' => 'Ils présentent, à l’aide d’ébauches et de descriptions, les variantes fondamentales en regard de leur implémentation','archive' => NULL), + array('id' => '607','fk_operational_competence' => '126','symbol' => 'G4.2','taxonomy' => '4','name' => 'En collaboration avec les parties prenantes, ils établissent une analyse d’utilité compré- hensible au moyen de critères décisionnels pertinents et évaluables.','archive' => NULL), + array('id' => '608','fk_operational_competence' => '126','symbol' => 'G4.3','taxonomy' => '5','name' => 'Ils conseillent la partie prenante dans sa prise de décision quant à la solution optimale, en tenant également compte des aspects éthiques et légaux.','archive' => NULL), + array('id' => '609','fk_operational_competence' => '126','symbol' => 'G4.4','taxonomy' => '5','name' => 'Ils élaborent un concept de réalisation technique et spécialisé au moyen des outils ap- propriés.','archive' => NULL), + array('id' => '610','fk_operational_competence' => '126','symbol' => 'G4.5','taxonomy' => '4','name' => 'Ils effectuent une analyse de faisabilité pour la variante choisie.','archive' => NULL), + array('id' => '611','fk_operational_competence' => '127','symbol' => 'G5.1','taxonomy' => '3','name' => 'Ils mettent en place un environnement de développement et d’exécution approprié sur la base du concept de réalisation préétabli et des directives de l’entreprise.','archive' => NULL), + array('id' => '612','fk_operational_competence' => '127','symbol' => 'G5.2','taxonomy' => '3','name' => 'Ils programment de façon efficiente et structurée un back-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce.','archive' => NULL), + array('id' => '613','fk_operational_competence' => '127','symbol' => 'G5.3','taxonomy' => '3','name' => 'Ils programment de façon efficiente et structurée un front-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce.','archive' => NULL), + array('id' => '614','fk_operational_competence' => '127','symbol' => 'G5.4','taxonomy' => '4','name' => 'Ils vérifient les résultats intermédiaires au regard des exigences (fonctionnel, non fonc- tionnel, sécurité) et procèdent en continu à des corrections.','archive' => NULL), + array('id' => '615','fk_operational_competence' => '127','symbol' => 'G5.5','taxonomy' => '3','name' => 'Ils vérifient si les conventions de code sont bien respectées.','archive' => NULL), + array('id' => '616','fk_operational_competence' => '127','symbol' => 'G5.6','taxonomy' => '3','name' => 'Ils déposent les modifications et extensions de l’implémentation de façon claire et fiable dans un système de gestion des logiciels.','archive' => NULL), + array('id' => '617','fk_operational_competence' => '127','symbol' => 'G5.7','taxonomy' => '3','name' => 'Ils adaptent le concept de réalisation de façon claire et intelligible.','archive' => NULL), + array('id' => '618','fk_operational_competence' => '128','symbol' => 'G6.1','taxonomy' => '3','name' => 'Ils décrivent l’environnement de test d’une application avec toutes les indications perti- nentes.','archive' => NULL), + array('id' => '619','fk_operational_competence' => '128','symbol' => 'G6.2','taxonomy' => '4','name' => 'Ils définissent les moyens de test sur la base des types de test sélectionnés.','archive' => NULL), + array('id' => '620','fk_operational_competence' => '128','symbol' => 'G6.3','taxonomy' => '4','name' => 'Ils décrivent de façon compréhensible des cas de test reproductibles en relation avec les cas d’utilisation et les exigences, et définissent les résultats escomptés.','archive' => NULL), + array('id' => '621','fk_operational_competence' => '128','symbol' => 'G6.4','taxonomy' => '3','name' => 'Ils mettent en place un environnement de test approprié selon le concept de tests.','archive' => NULL), + array('id' => '622','fk_operational_competence' => '128','symbol' => 'G6.5','taxonomy' => '4','name' => 'Ils implémentent les cas de test automatisables en fonction des moyens de test définis.','archive' => NULL), + array('id' => '623','fk_operational_competence' => '128','symbol' => 'G6.6','taxonomy' => '3','name' => 'Ils exécutent les cas de test intégralement et rigoureusement.','archive' => NULL), + array('id' => '624','fk_operational_competence' => '128','symbol' => 'G6.7','taxonomy' => '4','name' => 'Ils évaluent le déroulement du test et consignent les résultats de façon compréhensible dans un rapport.','archive' => NULL), + array('id' => '625','fk_operational_competence' => '128','symbol' => 'G6.8','taxonomy' => '4','name' => 'Ils définissent des mesures correctives et les exécutent.','archive' => NULL), + array('id' => '626','fk_operational_competence' => '128','symbol' => 'G6.9','taxonomy' => '4','name' => 'Ils vérifient l’implémentation en fonction du concept de sécurité défini et prennent les mesures correctives appropriées.','archive' => NULL), + array('id' => '627','fk_operational_competence' => '129','symbol' => 'H1.1','taxonomy' => '4','name' => 'Ils identifient les dépendances entre les divers composants.','archive' => NULL), + array('id' => '628','fk_operational_competence' => '129','symbol' => 'H1.2','taxonomy' => '4','name' => 'Ils déterminent la plateforme appropriée au fonctionnement de l’application.','archive' => NULL), + array('id' => '629','fk_operational_competence' => '129','symbol' => 'H1.3','taxonomy' => '4','name' => 'Ils définissent le modèle de couches en fonction des conditions cadres de la partie pre- nante.','archive' => NULL), + array('id' => '630','fk_operational_competence' => '129','symbol' => 'H1.4','taxonomy' => '4','name' => 'Ils identifient les exigences de sécurité devant être remplies par la plateforme et choisis- sent les services appropriés.','archive' => NULL), + array('id' => '631','fk_operational_competence' => '129','symbol' => 'H1.5','taxonomy' => '3','name' => 'Ils sélectionnent les ressources requises en fonction des recommandations de l’opérateur de la plateforme.','archive' => NULL), + array('id' => '632','fk_operational_competence' => '129','symbol' => 'H1.6','taxonomy' => '4','name' => 'Ils vérifient la cohérence de leur choix en collaboration avec leur équipe, procèdent à d’éventuelles adaptations et consignent les résultats.','archive' => NULL), + array('id' => '633','fk_operational_competence' => '130','symbol' => 'H2.1','taxonomy' => '4','name' => 'Ils analysent les dépendances entre les composants en regard du processus de livraison.','archive' => NULL), + array('id' => '634','fk_operational_competence' => '130','symbol' => 'H2.2','taxonomy' => '4','name' => 'Ils déterminent des pratiques d’intégration appropriées et les consignent.','archive' => NULL), + array('id' => '635','fk_operational_competence' => '130','symbol' => 'H2.3','taxonomy' => '4','name' => 'Ils définissent les pratiques de déploiement adéquates et les consignent.','archive' => NULL), + array('id' => '636','fk_operational_competence' => '130','symbol' => 'H2.4','taxonomy' => '4','name' => 'Ils déterminent la gestion des artefacts appropriée et la consignent.','archive' => NULL), + array('id' => '637','fk_operational_competence' => '131','symbol' => 'H3.1','taxonomy' => '3','name' => 'Ils installent les services de livraison.','archive' => NULL), + array('id' => '638','fk_operational_competence' => '131','symbol' => 'H3.2','taxonomy' => '3','name' => 'Ils écrivent les scripts d’automatisation et définissent les variables d’environnement au moyen des méthodes et des outils appropriés.','archive' => NULL), + array('id' => '639','fk_operational_competence' => '131','symbol' => 'H3.3','taxonomy' => '3','name' => 'Ils mettent à disposition les composants pour la livraison.','archive' => NULL), + array('id' => '640','fk_operational_competence' => '131','symbol' => 'H3.4','taxonomy' => '3','name' => 'Ils empaquètent l’application.','archive' => NULL), + array('id' => '641','fk_operational_competence' => '131','symbol' => 'H3.5','taxonomy' => '3','name' => 'Ils administrent et versionnent les artefacts.','archive' => NULL), + array('id' => '642','fk_operational_competence' => '131','symbol' => 'H3.6','taxonomy' => '4','name' => 'Ils vérifient le processus de livraison de l’application selon la procédure établie.','archive' => NULL), + array('id' => '643','fk_operational_competence' => '131','symbol' => 'H3.7','taxonomy' => '4','name' => 'Ils vérifient la capacité de fonctionnement/ l’interaction des applications au moyen d’un concept de tests.','archive' => NULL), + array('id' => '644','fk_operational_competence' => '132','symbol' => 'H4.1','taxonomy' => '3','name' => 'Ils définissent et configurent les outils pour le monitorage d’une application.','archive' => NULL), + array('id' => '645','fk_operational_competence' => '132','symbol' => 'H4.2','taxonomy' => '3','name' => 'Ils effectuent le monitorage à intervalles réguliers de façon fiable et rigoureuse.','archive' => NULL), + array('id' => '646','fk_operational_competence' => '132','symbol' => 'H4.3','taxonomy' => '4','name' => 'Ils analysent les problèmes en adoptant une procédure structurée.','archive' => NULL), + array('id' => '647','fk_operational_competence' => '132','symbol' => 'H4.4','taxonomy' => '4','name' => 'Ils vérifient l’actualité et les paramètres de sécurité des applications et des interfaces en consultant régulièrement les informations des fabricants.','archive' => NULL), + array('id' => '648','fk_operational_competence' => '132','symbol' => 'H4.5','taxonomy' => '5','name' => 'Ils définissent une procédure ciblée en vue de résoudre les problèmes et en discutent avec leur équipe et/ou la partie prenante concernée.','archive' => NULL), + array('id' => '649','fk_operational_competence' => '132','symbol' => 'H4.6','taxonomy' => '3','name' => 'Ils mettent en œuvre les mesures convenues et les consignent de façon claire et compréhensible.','archive' => NULL), + array('id' => '650','fk_operational_competence' => '133','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '651','fk_operational_competence' => '133','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires','archive' => NULL), + array('id' => '652','fk_operational_competence' => '133','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '653','fk_operational_competence' => '133','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '654','fk_operational_competence' => '133','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '655','fk_operational_competence' => '133','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '656','fk_operational_competence' => '133','symbol' => 'A.1.7','taxonomy' => '6','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '657','fk_operational_competence' => '134','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)','archive' => NULL), + array('id' => '658','fk_operational_competence' => '134','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur','archive' => NULL), + array('id' => '659','fk_operational_competence' => '134','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Acquérir le matériel, les logiciels et les licences','archive' => NULL), + array('id' => '660','fk_operational_competence' => '134','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données','archive' => NULL), + array('id' => '661','fk_operational_competence' => '134','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation','archive' => NULL), + array('id' => '662','fk_operational_competence' => '135','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '663','fk_operational_competence' => '135','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur','archive' => NULL), + array('id' => '664','fk_operational_competence' => '135','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)','archive' => NULL), + array('id' => '665','fk_operational_competence' => '135','symbol' => 'A.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '666','fk_operational_competence' => '135','symbol' => 'A.3.5','taxonomy' => '3','name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils','archive' => NULL), + array('id' => '667','fk_operational_competence' => '136','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '668','fk_operational_competence' => '136','symbol' => 'B.1.2','taxonomy' => '3','name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '669','fk_operational_competence' => '136','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '670','fk_operational_competence' => '137','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '671','fk_operational_competence' => '137','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '672','fk_operational_competence' => '137','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '673','fk_operational_competence' => '137','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '674','fk_operational_competence' => '138','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '675','fk_operational_competence' => '138','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '676','fk_operational_competence' => '138','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '677','fk_operational_competence' => '138','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '678','fk_operational_competence' => '139','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '679','fk_operational_competence' => '139','symbol' => 'C.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '680','fk_operational_competence' => '139','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '681','fk_operational_competence' => '139','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '682','fk_operational_competence' => '139','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '683','fk_operational_competence' => '140','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '684','fk_operational_competence' => '140','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '685','fk_operational_competence' => '140','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '686','fk_operational_competence' => '140','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '687','fk_operational_competence' => '140','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes','archive' => NULL), + array('id' => '688','fk_operational_competence' => '141','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '689','fk_operational_competence' => '141','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '690','fk_operational_competence' => '141','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '691','fk_operational_competence' => '141','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '692','fk_operational_competence' => '142','symbol' => 'C.4.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '693','fk_operational_competence' => '142','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '694','fk_operational_competence' => '142','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '695','fk_operational_competence' => '142','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '696','fk_operational_competence' => '143','symbol' => 'D.1.1','taxonomy' => '4','name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils','archive' => NULL), + array('id' => '697','fk_operational_competence' => '143','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)','archive' => NULL), + array('id' => '698','fk_operational_competence' => '143','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '699','fk_operational_competence' => '143','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Elaborer la documentation pour les utilisateurs','archive' => NULL), + array('id' => '700','fk_operational_competence' => '144','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème','archive' => NULL), + array('id' => '701','fk_operational_competence' => '144','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques','archive' => NULL), + array('id' => '702','fk_operational_competence' => '144','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils','archive' => NULL), + array('id' => '703','fk_operational_competence' => '144','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '704','fk_operational_competence' => '145','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '705','fk_operational_competence' => '145','symbol' => 'E.1.2','taxonomy' => '4','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '706','fk_operational_competence' => '145','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '707','fk_operational_competence' => '145','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '708','fk_operational_competence' => '145','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '709','fk_operational_competence' => '145','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '710','fk_operational_competence' => '145','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '711','fk_operational_competence' => '146','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc','archive' => NULL), + array('id' => '712','fk_operational_competence' => '146','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '713','fk_operational_competence' => '146','symbol' => 'E.2.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue','archive' => NULL), + array('id' => '714','fk_operational_competence' => '146','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '715','fk_operational_competence' => '146','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns','archive' => NULL), + array('id' => '716','fk_operational_competence' => '146','symbol' => 'E.2.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '717','fk_operational_competence' => '146','symbol' => 'E.2.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '718','fk_operational_competence' => '146','symbol' => 'E.2.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '719','fk_operational_competence' => '147','symbol' => 'E.3.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '720','fk_operational_competence' => '147','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '721','fk_operational_competence' => '147','symbol' => 'E.3.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '722','fk_operational_competence' => '147','symbol' => 'E.3.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '723','fk_operational_competence' => '147','symbol' => 'E.3.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '724','fk_operational_competence' => '147','symbol' => 'E.3.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '725','fk_operational_competence' => '148','symbol' => 'E.4.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '726','fk_operational_competence' => '148','symbol' => 'E.4.2','taxonomy' => '3','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '727','fk_operational_competence' => '148','symbol' => 'E.4.3','taxonomy' => '3','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '728','fk_operational_competence' => '148','symbol' => 'E.4.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '729','fk_operational_competence' => '148','symbol' => 'E.4.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '730','fk_operational_competence' => '149','symbol' => 'E.5.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '731','fk_operational_competence' => '149','symbol' => 'E.5.2','taxonomy' => '3','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '732','fk_operational_competence' => '149','symbol' => 'E.5.3','taxonomy' => '3','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '733','fk_operational_competence' => '149','symbol' => 'E.5.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '734','fk_operational_competence' => '150','symbol' => 'F.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '735','fk_operational_competence' => '150','symbol' => 'F.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '736','fk_operational_competence' => '150','symbol' => 'F.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '737','fk_operational_competence' => '150','symbol' => 'F.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '738','fk_operational_competence' => '150','symbol' => 'F.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '739','fk_operational_competence' => '150','symbol' => 'F.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '740','fk_operational_competence' => '150','symbol' => 'F.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '741','fk_operational_competence' => '151','symbol' => 'F.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '742','fk_operational_competence' => '151','symbol' => 'F.2.2','taxonomy' => '3','name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '743','fk_operational_competence' => '151','symbol' => 'F.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '744','fk_operational_competence' => '151','symbol' => 'F.2.4','taxonomy' => '3','name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '745','fk_operational_competence' => '151','symbol' => 'F.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '746','fk_operational_competence' => '152','symbol' => 'F.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '747','fk_operational_competence' => '152','symbol' => 'F.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL) + ); + foreach ($objectives as $objective) + $this->db->table('objective')->insert($objective); + + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php b/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php new file mode 100644 index 00000000..52772cd3 --- /dev/null +++ b/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php @@ -0,0 +1,98 @@ + '75','fk_competence_domain' => '21','name' => 'Clarifier et documenter les besoins des parties prenantes dans le cadre d’un projet ICT','symbol' => 'A1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '76','fk_competence_domain' => '21','name' => 'Définir un modèle de procédure pour un projet ICT','symbol' => 'A2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '77','fk_competence_domain' => '21','name' => 'Rechercher des informations sur des solutions ICT et sur les innovations','symbol' => 'A3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '78','fk_competence_domain' => '21','name' => 'Planifier les projets ICT et les tâches selon un modèle de procédure','symbol' => 'A4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '79','fk_competence_domain' => '21','name' => 'Visualiser et présenter les variantes de solutions ICT','symbol' => 'A5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '80','fk_competence_domain' => '21','name' => 'Vérifier l’avancement des projets ICT et des tâches et en faire état selon le modèle de procédure','symbol' => 'A6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '81','fk_competence_domain' => '21','name' => 'Remettre la solution ICT au client et clôturer le projet','symbol' => 'A7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '82','fk_competence_domain' => '22','name' => 'Installer un PC monoposte','symbol' => 'B1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '83','fk_competence_domain' => '22','name' => 'Réceptionner et traiter des demandes d’assistance informatique complexes','symbol' => 'B2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '84','fk_competence_domain' => '22','name' => 'Conseiller les clients en matière de protection et de sécurité des données','symbol' => 'B3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '85','fk_competence_domain' => '22','name' => 'Analyser, visualiser et documenter les processus métier des clients','symbol' => 'B4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '86','fk_competence_domain' => '23','name' => 'Identifier et analyser les données et développer des modèles de données','symbol' => 'C1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '87','fk_competence_domain' => '23','name' => 'Mettre en œuvre des modèles de données dans un dispositif de stockage de données numériques','symbol' => 'C2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '88','fk_competence_domain' => '23','name' => 'Planifier, implé menter et documenter la sécurité et la protection des données pour des solutions ICT','symbol' => 'C3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '89','fk_competence_domain' => '23','name' => 'Traiter des données à partir de dispositifs de stockage de données numériques','symbol' => 'C4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '90','fk_competence_domain' => '24','name' => 'Recueillir, stan dardiser et automati^ser les processus ICT','symbol' => 'D1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '91','fk_competence_domain' => '24','name' => 'Définir le processus de livraison des solutions ICT','symbol' => 'D2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '92','fk_competence_domain' => '24','name' => 'Préparer la plateforme d’exécution des solutions ICT','symbol' => 'D3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '93','fk_competence_domain' => '24','name' => 'Mettre en service les solutions ICT','symbol' => 'D4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '94','fk_competence_domain' => '25','name' => 'Planifier et documenter les réseaux','symbol' => 'E1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '95','fk_competence_domain' => '25','name' => 'Sélectionner et mettre en service les composants du réseau','symbol' => 'E2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '96','fk_competence_domain' => '25','name' => 'Maintenir et développer les réseaux','symbol' => 'E3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '97','fk_competence_domain' => '25','name' => 'Implémenter, documenter et vérifier la sécurité des réseaux','symbol' => 'E4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '98','fk_competence_domain' => '25','name' => 'Analyser, opti miser et documenter la performance d’un réseau','symbol' => 'E5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '99','fk_competence_domain' => '25','name' => 'Surveiller les réseaux','symbol' => 'E6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '100','fk_competence_domain' => '26','name' => 'Planifier et documenter les systèmes de serveurs et leurs services','symbol' => 'F1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '101','fk_competence_domain' => '26','name' => 'Mettre en service les systèmes de serveurs','symbol' => 'F2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '102','fk_competence_domain' => '26','name' => 'Mettre en service les services du serveur','symbol' => 'F3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '103','fk_competence_domain' => '26','name' => 'Maintenir et administrer les systèmes de serveurs et leurs services','symbol' => 'F4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '104','fk_competence_domain' => '26','name' => 'Surveiller les systèmes de ser veurs et leurs ser^vices','symbol' => 'F5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '105','fk_competence_domain' => '26','name' => 'Implémenter, documenter et vérifier la sécurité des systèmes de serveurs et de leurs services','symbol' => 'F6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '106','fk_competence_domain' => '26','name' => 'Planifier et mettre en œuvre la disponibilité des systèmes de serveurs et de leurs services','symbol' => 'F7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '107','fk_competence_domain' => '26','name' => 'Etablir et mettre en œuvre des concepts de sauvegarde et d’archivage des données','symbol' => 'F8','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '108','fk_competence_domain' => '27','name' => 'Clarifier et documenter les besoins des parties prenantes dans le cadre d’un projet ICT','symbol' => 'A1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '109','fk_competence_domain' => '27','name' => 'Définir un modèle de procédure pour un projet ICT','symbol' => 'A2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '110','fk_competence_domain' => '27','name' => 'Rechercher des informations sur des solutions ICT et sur les innovations','symbol' => 'A3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '111','fk_competence_domain' => '27','name' => 'Planifier les projets ICT et les tâches selon un modèle de procédure','symbol' => 'A4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '112','fk_competence_domain' => '27','name' => 'Visualiser et présenter les variantes de solutions ICT','symbol' => 'A5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '113','fk_competence_domain' => '27','name' => 'Vérifier l’avancement des projets ICT et des tâches et en faire état selon le modèle de procédure','symbol' => 'A6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '114','fk_competence_domain' => '27','name' => 'Remettre la solution ICT au client et clôturer le projet','symbol' => 'A7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '115','fk_competence_domain' => '28','name' => 'Installer un PC monoposte','symbol' => 'B1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '116','fk_competence_domain' => '28','name' => 'Réceptionner et traiter des demandes d’assistance informatique complexes','symbol' => 'B2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '117','fk_competence_domain' => '28','name' => 'Conseiller les clients en matière de protection et de sécurité des données','symbol' => 'B3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '118','fk_competence_domain' => '28','name' => 'Analyser, visualiser et documenter les processus métier des clients','symbol' => 'B4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '119','fk_competence_domain' => '29','name' => 'Identifier et analyser les données et développer des modèles de données','symbol' => 'C1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '120','fk_competence_domain' => '29','name' => 'Mettre en œuvre des modèles de données dans un dispositif de stockage de données numériques','symbol' => 'C2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '121','fk_competence_domain' => '29','name' => 'Planifier, implé menter et documenter la sécurité et la protection des données pour des solutions ICT','symbol' => 'C3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '122','fk_competence_domain' => '29','name' => 'Traiter des données à partir de dispositifs de stockage de données numériques','symbol' => 'C4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '123','fk_competence_domain' => '30','name' => 'Analyser et documenter les besoins en matière d’applications et d’interfaces','symbol' => 'G1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '124','fk_competence_domain' => '30','name' => 'Vérifier la faisabilité technique des prototypes d’interfaces utilisateur et les développer','symbol' => 'G2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '125','fk_competence_domain' => '30','name' => 'Evaluer et documenter la sécurité des applications et des interfaces','symbol' => 'G3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '126','fk_competence_domain' => '30','name' => 'Elaborer des variantes de mise en œuvre d’une application et développer la solution sur le plan conceptuel','symbol' => 'G4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '127','fk_competence_domain' => '30','name' => 'Implémenter les applications et les interfaces selon le concept en respectant les exigences de sécurité','symbol' => 'G5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '128','fk_competence_domain' => '30','name' => 'Vérifier la qualité et la sécurité des applications et des interfaces','symbol' => 'G6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '129','fk_competence_domain' => '31','name' => 'Définir la plateforme appropriée pour la livraison des applications','symbol' => 'H1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '130','fk_competence_domain' => '31','name' => 'Définir le processus de livraison des applications','symbol' => 'H2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '131','fk_competence_domain' => '31','name' => 'Implémenter le processus de livraison des applications','symbol' => 'H3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '132','fk_competence_domain' => '31','name' => 'Surveiller les applications et les interfaces et résoudre les problèmes en cours de fonctionnement','symbol' => 'H4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '133','fk_competence_domain' => '32','name' => 'Evaluer et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '134','fk_competence_domain' => '32','name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '135','fk_competence_domain' => '32','name' => 'Connecter et configurer des appareils périphériques','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, langage adapté au client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '136','fk_competence_domain' => '33','name' => 'Mettre en service des systèmes serveurs','symbol' => 'B1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '137','fk_competence_domain' => '33','name' => 'Installer des réseaux et leurs topologies','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision','social' => 'Faire des entretiens professionnels en anglais','personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction','archive' => NULL), + array('id' => '138','fk_competence_domain' => '33','name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage','symbol' => 'B3','methodologic' => 'Actions préventives','social' => 'Conseil','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress','archive' => NULL), + array('id' => '139','fk_competence_domain' => '34','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'C1','methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => '','personal' => 'Précision, fiable, actions attentives','archive' => NULL), + array('id' => '140','fk_competence_domain' => '34','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'C2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)','social' => 'Travail en groupe, entretien professionnel en anglais','personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline','archive' => NULL), + array('id' => '141','fk_competence_domain' => '34','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C3','methodologic' => 'Techniques d’interrogation','social' => 'Empathie','personal' => 'Comprendre et interpréter des documents anglais','archive' => NULL), + array('id' => '142','fk_competence_domain' => '34','name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)','symbol' => 'C4','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique','social' => 'Travailler en groupe','personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion','archive' => NULL), + array('id' => '143','fk_competence_domain' => '35','name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques','symbol' => 'D1','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '144','fk_competence_domain' => '35','name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place','symbol' => 'D2','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '145','fk_competence_domain' => '36','name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'E1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '146','fk_competence_domain' => '36','name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement','symbol' => 'E2','methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau','social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant','personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide','archive' => NULL), + array('id' => '147','fk_competence_domain' => '36','name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client','symbol' => 'E3','methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes','social' => 'Travail en groupe, empathie','personal' => 'Capacité d’innovation, créativité','archive' => NULL), + array('id' => '148','fk_competence_domain' => '36','name' => 'Mettre en œuvre des modèles de données dans une base de données','symbol' => 'E4','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '149','fk_competence_domain' => '36','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'E5','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '150','fk_competence_domain' => '37','name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace','symbol' => 'F1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '151','fk_competence_domain' => '37','name' => 'Collaborer à des projets','symbol' => 'F2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet','archive' => NULL), + array('id' => '152','fk_competence_domain' => '37','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'F3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL) + ); + foreach ($operational_competences as $operational_competencee){ + $this->db->table('operational_competence')->insert($operational_competencee); + } + } + +} \ No newline at end of file From c289e4b001892b6baa2703d0ba73d0c75a46bba0 Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 28 Sep 2021 10:01:01 +0200 Subject: [PATCH 108/172] uncommented plafor users --- orif/user/Database/Migrations/2021-03-19-090829_add_user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php index 462c1cbe..3596c2a4 100644 --- a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php +++ b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php @@ -50,7 +50,7 @@ public function up() //for plafor module //$seeder->call('\User\Database\Seeds\AddUserDatas'); // only for application - //$seeder->call('\Plafor\Database\Seeds\addUserDatas'); + $seeder->call('\Plafor\Database\Seeds\addUserDatas'); } /** From 424169e81f9a5bf52138be3dd3ff1a06391f1b91 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 30 Sep 2021 08:51:13 +0200 Subject: [PATCH 109/172] Added migration controller and view with password in config. appStatus.json contains a json object to know if database is migrated: automatic --- app/Controllers/BaseController.php | 20 ++-- composer.json | 5 +- orif/common/Language/fr/common_lang.php | 8 +- orif/plafor/Config/PlaforConfig.php | 1 + orif/plafor/Config/Routes.php | 2 + orif/plafor/Controllers/Migration.php | 49 ++++++++ orif/plafor/Views/migrationIndex.php | 142 ++++++++++++++++++++++++ writable/appStatus.json | 1 + 8 files changed, 217 insertions(+), 11 deletions(-) create mode 100644 orif/plafor/Controllers/Migration.php create mode 100644 orif/plafor/Views/migrationIndex.php create mode 100644 writable/appStatus.json diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 4620ea54..2c38e330 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -53,14 +53,18 @@ class BaseController extends Controller public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { // Do Not Edit This Line - parent::initController($request, $response, $logger); - - //-------------------------------------------------------------------- - // Preload any models, libraries, etc, here. - //-------------------------------------------------------------------- - // E.g.: - // $this->session = \Config\Services::session(); - $this->session = \Config\Services::session(); + try { + parent::initController($request, $response, $logger); + //-------------------------------------------------------------------- + // Preload any models, libraries, etc, here. + //-------------------------------------------------------------------- + // E.g.: + // $this->session = \Config\Services::session(); + $this->session = \Config\Services::session(); + }catch (\mysqli_sql_exception $e){ + echo view('\Plafor\Views\migrationindex'); + exit(); + } // Check permission on construct if (!$this->check_permission()) { $this->display_view('\User\errors\403error'); diff --git a/composer.json b/composer.json index 362cc865..a1f433b4 100644 --- a/composer.json +++ b/composer.json @@ -12,8 +12,9 @@ "ext-mbstring": "*", "kint-php/kint": "^3.3", "laminas/laminas-escaper": "^2.6", - "psr/log": "^1.1" - }, + "psr/log": "^1.1", + "ext-mysqli": "*" + }, "require-dev": { "codeigniter4/codeigniter4-standard": "^1.0", "fakerphp/faker": "^1.9", diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index b260d4ee..fd25fdf7 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -14,6 +14,7 @@ // Page titles 'page_prefix' => 'Plafor', + // Buttons 'btn_admin' => 'Administration', 'btn_login' => 'Se connecter', @@ -38,5 +39,10 @@ 'no' => 'Non', 'all_m' => 'Tous', 'all_f' => 'Toutes', - 'reactivate' => 'Réactiver' + 'reactivate' => 'Réactiver', + 'initialization' => 'Initialisation', + 'initialize' => 'Initialiser', + 'for' => 'Pour', + 'click_on_the_button' => 'Cliquez sur le bouton', + 'above' => 'Ci-dessous' ]; \ No newline at end of file diff --git a/orif/plafor/Config/PlaforConfig.php b/orif/plafor/Config/PlaforConfig.php index 85ca238d..6f8d83a8 100644 --- a/orif/plafor/Config/PlaforConfig.php +++ b/orif/plafor/Config/PlaforConfig.php @@ -20,4 +20,5 @@ class PlaforConfig extends BaseConfig public $TAXONOMY_MAX_VALUE=6; public $OBJECTIVE_NAME_MAX_LENGTH=350; public $SQL_TEXT_MAX_LENGTH=65535; + public $migrationPassword='ys3vTFiR6gyGajz'; } \ No newline at end of file diff --git a/orif/plafor/Config/Routes.php b/orif/plafor/Config/Routes.php index 9e20f7dc..b365b4a9 100644 --- a/orif/plafor/Config/Routes.php +++ b/orif/plafor/Config/Routes.php @@ -9,5 +9,7 @@ $routes->add('plafor/admin/(:any)','\Plafor\Controllers\Admin::$1'); $routes->add('plafor/apprentice/(:any)','\Plafor\Controllers\Apprentice::$1'); +$routes->add('migration/(:any)','\Plafor\Controllers\Migration::$1'); +$routes->add('migration','\Plafor\Controllers\Migration::index'); ?> \ No newline at end of file diff --git a/orif/plafor/Controllers/Migration.php b/orif/plafor/Controllers/Migration.php new file mode 100644 index 00000000..ef202576 --- /dev/null +++ b/orif/plafor/Controllers/Migration.php @@ -0,0 +1,49 @@ +request->getPost('password')==='ys3vTFiR6gyGajz'){ + + $file = fopen(WRITEPATH . 'appStatus.json', 'r+'); + $initDatas = fread($file, 100); + + if ((json_decode($initDatas, true))['initialized'] === false) { + $this->response->setStatusCode('201')->send(); + $migrate = Services::migrations(); + try { + $migrate->setNamespace('User'); + $migrate->latest(); + $migrate->setNamespace('Plafor'); + $migrate->latest(); + } catch (\Exception $e) { + echo $e->getMessage(); + } + fclose($file); + fwrite(fopen(WRITEPATH . 'appStatus.json', 'w+'), json_encode(['initialized' => true])); + unlink((new \ReflectionClass('\Plafor\Controllers\Migration'))->getFileName()); + unlink(ROOTPATH.'orif/plafor/Views/migrationindex.php'); + return $this->response->setStatusCode(200); + + } + else{ + return $this->response->setStatusCode('400'); + } + }else{ + return $this->response->setStatusCode('401'); + } + +} +} + + + + + diff --git a/orif/plafor/Views/migrationIndex.php b/orif/plafor/Views/migrationIndex.php new file mode 100644 index 00000000..ce33a66e --- /dev/null +++ b/orif/plafor/Views/migrationIndex.php @@ -0,0 +1,142 @@ + + +

    + +

    +
    +

    + + + +
    + + + + +
    + +" /> + \ No newline at end of file diff --git a/writable/appStatus.json b/writable/appStatus.json new file mode 100644 index 00000000..eac30a82 --- /dev/null +++ b/writable/appStatus.json @@ -0,0 +1 @@ +{"initialized":false} \ No newline at end of file From 9984d0963bbb8b25af6c810b5184d6307df99cb3 Mon Sep 17 00:00:00 2001 From: maximeor <77323615+maximeor@users.noreply.github.com> Date: Fri, 1 Oct 2021 13:13:13 +0200 Subject: [PATCH 110/172] Add progress visualisation and 2021 course plans - Add progress bars in apprentices list - Add 2021 "Informaticien SYS / DEV" course plans - Add 2021 "Informaticien d'entreprise" course plan --- orif/common/Config/AdminPanelConfig.php | 10 +- orif/common/Views/footer.php | 7 + orif/common/Views/header.php | 2 + orif/plafor/Controllers/Admin.php | 12 +- orif/plafor/Controllers/Apprentice.php | 40 +- .../2021-09-28-090428_AddCompetenceDomain.php | 47 + .../2021-09-28-090428_AddCoursePlan.php | 46 + .../2021-09-28-090428_AddObjective.php | 51 + .../2021-09-28-090428_AddOpCompetence.php | 62 + .../Seeds/addAcquisitionLevelDatas.php | 36 +- .../Seeds/addAcquisitionStatusDatas.php | 2047 ++--------- .../Seeds/addCompetenceDomain2021Datas.php | 37 + .../Seeds/addCompetenceDomainDatas.php | 230 +- .../Database/Seeds/addCoursePlan2021Datas.php | 19 + .../Database/Seeds/addCoursePlanDatas.php | 74 +- .../Database/Seeds/addObjective2021Datas.php | 434 +++ .../Database/Seeds/addObjectiveDatas.php | 2987 ++--------------- .../addOperationalCompetences2021Datas.php | 98 + .../Seeds/addOperationalCompetencesDatas.php | 807 +---- .../Seeds/addTrainerApprenticeDatas.php | 31 +- .../Database/Seeds/addUserCoursesDatas.php | 43 +- orif/plafor/Language/fr/plafor_lang.php | 316 +- orif/plafor/Models/acquisitionStatusModel.php | 2 +- orif/plafor/Models/commentModel.php | 2 +- orif/plafor/Models/competenceDomainModel.php | 4 +- orif/plafor/Models/coursePlanModel.php | 6 +- orif/plafor/Models/objectiveModel.php | 6 +- .../Models/operationalCompetenceModel.php | 10 +- orif/plafor/Models/trainerApprenticeModel.php | 2 +- orif/plafor/Models/userCourseModel.php | 6 +- orif/plafor/Validation/PlaforRules.php | 2 +- orif/plafor/Views/acquisition_status/save.php | 2 +- orif/plafor/Views/acquisition_status/view.php | 20 +- orif/plafor/Views/apprentice/delete.php | 8 +- orif/plafor/Views/apprentice/link.php | 6 +- orif/plafor/Views/apprentice/list.php | 139 +- orif/plafor/Views/apprentice/view.php | 20 +- orif/plafor/Views/comment/save.php | 2 +- .../plafor/Views/competence_domain/delete.php | 4 +- orif/plafor/Views/competence_domain/list.php | 4 +- orif/plafor/Views/competence_domain/save.php | 8 +- orif/plafor/Views/competence_domain/view.php | 14 +- orif/plafor/Views/course_plan/delete.php | 8 +- orif/plafor/Views/course_plan/list.php | 4 +- orif/plafor/Views/course_plan/save.php | 6 +- orif/plafor/Views/course_plan/view.php | 10 +- orif/plafor/Views/objective/delete.php | 4 +- orif/plafor/Views/objective/list.php | 4 +- orif/plafor/Views/objective/save.php | 10 +- orif/plafor/Views/objective/view.php | 24 +- .../Views/operational_competence/delete.php | 4 +- .../Views/operational_competence/list.php | 4 +- .../Views/operational_competence/save.php | 14 +- .../Views/operational_competence/view.php | 26 +- orif/plafor/Views/templates/admin_menu.php | 2 +- orif/plafor/Views/user_course/save.php | 10 +- orif/plafor/Views/user_course/view.php | 24 +- .../Migrations/2021-03-19-090829_add_user.php | 2 +- orif/user/Language/fr/user_lang.php | 171 - orif/welcome/Views/welcome_message.php | 1 + public/css/progressbarstyle.css | 236 ++ public/images/floumin.svg | 97 + public/jsComponents/progressStats.js | 231 ++ public/jsComponents/progressbar.js | 170 + src/progressStats.js | 128 + src/progressbar.js | 137 + 66 files changed, 3045 insertions(+), 5985 deletions(-) create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php create mode 100644 orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php create mode 100644 orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addCoursePlan2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addObjective2021Datas.php create mode 100644 orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php create mode 100644 public/css/progressbarstyle.css create mode 100644 public/images/floumin.svg create mode 100644 public/jsComponents/progressStats.js create mode 100644 public/jsComponents/progressbar.js create mode 100644 src/progressStats.js create mode 100644 src/progressbar.js diff --git a/orif/common/Config/AdminPanelConfig.php b/orif/common/Config/AdminPanelConfig.php index 5cdd1bd1..6e2915ce 100644 --- a/orif/common/Config/AdminPanelConfig.php +++ b/orif/common/Config/AdminPanelConfig.php @@ -18,10 +18,12 @@ class AdminPanelConfig extends \CodeIgniter\Config\BaseConfig public $views=[ /** eg... */ ['label'=>'user_lang.title_user_list','title'=>'user_lang.title_user_list','pageLink'=>'user/admin/list_user'], - ['label'=>'user_lang.admin_course_plans','title'=>'user_lang.admin_course_plans','pageLink'=>'plafor/admin/list_course_plan'], - ['label'=>'user_lang.admin_competence_domains','title'=>'user_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], - ['label'=>'user_lang.admin_operational_competences','title'=>'user_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], - ['label'=>'user_lang.admin_objectives','title'=>'user_lang.admin_objectives','pageLink'=>'plafor/admin/list_objective'], + ['label'=>'plafor_lang.title_apprentice_list','title'=>'plafor_lang.title_apprentice_list','pageLink'=>'plafor/apprentice/list_apprentice'], + ['label'=>'plafor_lang.admin_course_plans','title'=>'plafor_lang.admin_course_plans','pageLink'=>'plafor/admin/list_course_plan'], + ['label'=>'plafor_lang.admin_competence_domains','title'=>'plafor_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], + ['label'=>'plafor_lang.admin_operational_competences','title'=>'plafor_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], + ['label'=>'plafor_lang.admin_objectives','title'=>'plafor_lang.admin_objectives','pageLink'=>'plafor/admin/list_objective'], + ]; diff --git a/orif/common/Views/footer.php b/orif/common/Views/footer.php index 7021179e..ac08cd78 100644 --- a/orif/common/Views/footer.php +++ b/orif/common/Views/footer.php @@ -14,5 +14,12 @@ let icolink=document.querySelector("link:first-of-type"); document.getElementsByTagName("head")[0].append(icolink); + + + + + + + diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index c9418c0a..3ef3fb7d 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -46,6 +46,8 @@ " /> + " /> + find($id_apprentice); $user_course = UserCourseModel::getInstance()->find($id_user_course); - if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))['id']){ + if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('plafor_lang.title_apprentice'))['id']){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); } if(count($_POST) > 0){ $rules = array( 'course_plan'=>[ - 'label' => 'user_lang.course_plan', + 'label' => 'plafor_lang.course_plan', 'rules' => 'required|numeric', ], 'status'=>[ - 'label' => 'user_lang.status', + 'label' => 'plafor_lang.status', 'rules' => 'required|numeric', ], 'date_begin'=>[ - 'label' => 'user_lang.field_user_course_date_begin', + 'label' => 'plafor_lang.field_user_course_date_begin', 'rules' => 'required' ] /* @@ -689,7 +689,7 @@ public function delete_objective($objective_id, $action = 0) $status[$usercoursestatus['id']]=$usercoursestatus['name']; $output = array( - 'title' => lang('user_lang.title_course_plan_link'), + 'title' => lang('plafor_lang.title_course_plan_link'), 'course_plans' => $course_plans, 'user_course' => $user_course, 'status' => $status, @@ -713,7 +713,7 @@ public function save_apprentice_link($id_apprentice = null, $id_link = 0){ if($_SESSION['user_access'] < config('\Plafor\Config\plaforConfig')->access_lvl_admin || $apprentice == null - || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('plafor_lang.title_apprentice'))->first()['id']){ return redirect()->to(base_url()); } diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 1d029fca..8fe86066 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -99,7 +99,7 @@ public function view_apprentice($apprentice_id = null) { $apprentice = User_model::getInstance()->find($apprentice_id); - if(is_null($apprentice) || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + if(is_null($apprentice) || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('plafor_lang.title_apprentice'))->first()['id']){ return redirect()->to(base_url("/plafor/apprentice/list_apprentice")); } $user_courses=[]; @@ -115,7 +115,7 @@ public function view_apprentice($apprentice_id = null) $course_plans[$courseplan['id']] = $courseplan; $trainers = []; - foreach (User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name',lang('user_lang.title_trainer'))->first()['id'])->findall() as $trainer) + foreach (User_model::getInstance()->where('fk_user_type',User_type_model::getInstance()->where('name',lang('plafor_lang.title_trainer'))->first()['id'])->findall() as $trainer) $trainers[$trainer['id']]= $trainer; $links = []; @@ -166,7 +166,7 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ $apprentice = User_model::getInstance()->find($id_apprentice); $user_course = UserCourseModel::getInstance()->find($id_user_course); - if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('user_lang.title_apprentice'))->first()['id']){ + if($id_apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()->where('name',lang('plafor_lang.title_apprentice'))->first()['id']){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); exit(); } @@ -229,7 +229,7 @@ public function save_user_course($id_apprentice = null,$id_user_course = 0){ $status[$usercoursestatus['id']]=$usercoursestatus['name']; } $output = array( - 'title' => lang('plafor_lang.user_course_title_course_plan_link'), + 'title' => lang('plafor_lang.title_user_course_plan_link'), 'course_plans' => $course_plans, 'user_course' => $user_course, 'status' => $status, @@ -255,7 +255,7 @@ public function save_apprentice_link($id_apprentice = null, $id_link = null){ if($_SESSION['user_access'] < config('\User\Config\UserConfig')->access_lvl_admin || $apprentice == null || $apprentice['fk_user_type'] != User_type_model::getInstance()-> - where('name',lang('user_lang.title_apprentice'))->first()['id']){ + where('name',lang('plafor_lang.title_apprentice'))->first()['id']){ return redirect()->to(base_url()); } @@ -562,4 +562,34 @@ public function view_user_course($id_user_course = null){ fclose($filedatas); } */ + /** + * + */ + public function getCoursePlanProgress($id){ + if (!isset($id)) { + return null; + } + + $objectivesByStatusAnduserCourse=[]; + $usercourseids=array_column(UserCourseModel::getInstance()->where('fk_user',$id)->findAll(),'id'); + $AcquisitionLevels=AcquisitionLevelModel::getInstance()->findAll(); + foreach ($usercourseids as $usercourseid) { + $AcquisitionStatus=AcquisitionStatusModel::getInstance()->where('fk_user_course',$usercourseid)->findAll(); + $objecivesAssociated=[]; + foreach ($AcquisitionStatus as $acquisitionStatus){ + $tempaArray=ObjectiveModel::getInstance()->find($acquisitionStatus['fk_objective']); + try{ + $tempaArray=array_merge($tempaArray,['acquisition_level'=>$acquisitionStatus['fk_acquisition_level']]); + }catch (\Exception $e){ + + } + $objecivesAssociated[$acquisitionStatus['fk_objective']]=$tempaArray; + } + $objectivesByStatusAnduserCourse[$usercourseid]=$objecivesAssociated; + + + + } + return json_encode($objectivesByStatusAnduserCourse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + } } \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php new file mode 100644 index 00000000..29c443b8 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCompetenceDomain.php @@ -0,0 +1,47 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_course_plan' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'archive TIMESTAMP NULL', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_course_plan', 'course_plan','id'); + try { + $this->db->tableExists('competence_domain')===true?:$this->forge->createTable('competence_domain'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCompetenceDomain2021Datas'); + } + + public function down() { + $this->forge->dropTable('competence_domain'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php new file mode 100644 index 00000000..9f6ee082 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddCoursePlan.php @@ -0,0 +1,46 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'formation_number' => [ + 'type' => 'varchar', + 'constraint' => '5', + ], + 'official_name' => [ + 'type' => 'varchar', + 'constraint' => '100', + ], + 'date_begin' => [ + 'type' => 'date', + + ], + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + try { + $this->db->tableExists('course_plan')===true?:$this->forge->createTable('course_plan'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addCoursePlan2021Datas'); + } + + public function down() { + $this->forge->dropTable('course_plan'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php new file mode 100644 index 00000000..7e24e3c2 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddObjective.php @@ -0,0 +1,51 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_operational_competence' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'taxonomy' => [ + 'type' => 'int', + 'constraint' => '5', + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '350', + ], + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_operational_competence','operational_competence','id'); + try { + $this->db->tableExists('objective')===true?:$this->forge->createTable('objective'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addObjective2021Datas'); + } + + public function down() { + $this->forge->dropTable('objective'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php new file mode 100644 index 00000000..8398e6c8 --- /dev/null +++ b/orif/plafor/Database/Migrations/mig2021/2021-09-28-090428_AddOpCompetence.php @@ -0,0 +1,62 @@ +db->disableForeignKeyChecks(); + $this->forge->addField([ + 'id' => [ + 'type' => 'int', + 'contraint' => '11', + 'unsigned' => true, + 'auto_increment' => true, + ], + 'fk_competence_domain' => [ + 'type' => 'int', + 'null'=>true, + 'unsigned' => true, + ], + 'name' => [ + 'type' => 'varchar', + 'constraint' => '150', + 'default' => 'null', + ], + 'symbol' => [ + 'type' => 'varchar', + 'constraint' => '10', + ], + 'methodologic' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'social' => [ + 'type' => 'text', + 'default' => 'null', + ], + 'personal' => [ + 'type' => 'text', + 'default' => 'null', + ], + + 'archive timestamp null', + ]); + + $this->forge->addKey('id', true, true); + $this->forge->addForeignKey('fk_competence_domain', 'competence_domain','id'); + try { + $this->db->tableExists('operational_competence')===true?:$this->forge->createTable('operational_competence'); + }catch (\Exception $e){ + echo $e->getMessage(); + } + $seeder = \Config\Database::seeder(); + $seeder->call('\Plafor\Database\Seeds\addOperationalCompetences2021Datas'); + } + + public function down() { + $this->forge->dropTable('operational_competence'); + } +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php index 6b6f9f1f..249447f5 100644 --- a/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php +++ b/orif/plafor/Database/Seeds/addAcquisitionLevelDatas.php @@ -11,25 +11,23 @@ class addAcquisitionLevelDatas extends Seeder public function run() { //Acquisition level// - $acquisitionLevels=[ - array ( - 'id' => '1', - 'name' => 'Non expliqué', - ), - array ( - 'id' => '2', - 'name' => 'Expliqué', - ), - array ( - 'id' => '3', - 'name' => 'Exercé', - ), - array ( - 'id' => '4', - 'name' => 'Autonome', - ), - ]; - foreach ($acquisitionLevels as $acquisitionLevel) + /** + * Export to PHP Array plugin for PHPMyAdmin + * @version 5.0.4 + */ + + /** + * Database `plafor` + */ + + /* `plafor`.`acquisition_level` */ + $acquisition_level = array( + array('id' => '1','name' => 'Non expliqué'), + array('id' => '2','name' => 'Expliqué'), + array('id' => '3','name' => 'Exercé'), + array('id' => '4','name' => 'Autonome') + ); + foreach ($acquisition_level as $acquisitionLevel) $this->db->table('acquisition_level')->insert($acquisitionLevel); } diff --git a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php index ff78572d..c4628eb9 100644 --- a/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php +++ b/orif/plafor/Database/Seeds/addAcquisitionStatusDatas.php @@ -11,1821 +11,238 @@ class addAcquisitionStatusDatas extends Seeder public function run() { //Acquisition status// - $acquisitionStatus=[ - array ( - 'id' => '1', - 'fk_objective' => '1', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '2', - 'fk_objective' => '2', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '3', - 'fk_objective' => '3', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '4', - 'fk_objective' => '4', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '5', - 'fk_objective' => '5', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '6', - 'fk_objective' => '6', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '7', - 'fk_objective' => '7', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '8', - 'fk_objective' => '8', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '9', - 'fk_objective' => '9', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '10', - 'fk_objective' => '10', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '11', - 'fk_objective' => '11', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '12', - 'fk_objective' => '12', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '13', - 'fk_objective' => '13', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '14', - 'fk_objective' => '14', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '15', - 'fk_objective' => '15', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '16', - 'fk_objective' => '16', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '17', - 'fk_objective' => '17', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '18', - 'fk_objective' => '18', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '19', - 'fk_objective' => '19', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '20', - 'fk_objective' => '20', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '21', - 'fk_objective' => '21', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '22', - 'fk_objective' => '22', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '23', - 'fk_objective' => '23', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '24', - 'fk_objective' => '24', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '25', - 'fk_objective' => '25', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '26', - 'fk_objective' => '26', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '27', - 'fk_objective' => '27', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '28', - 'fk_objective' => '28', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '29', - 'fk_objective' => '29', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '30', - 'fk_objective' => '30', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '31', - 'fk_objective' => '31', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '32', - 'fk_objective' => '32', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '33', - 'fk_objective' => '33', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '34', - 'fk_objective' => '34', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '35', - 'fk_objective' => '35', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '36', - 'fk_objective' => '36', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '37', - 'fk_objective' => '37', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '38', - 'fk_objective' => '38', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '39', - 'fk_objective' => '39', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '40', - 'fk_objective' => '40', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '41', - 'fk_objective' => '41', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '42', - 'fk_objective' => '42', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '43', - 'fk_objective' => '43', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '44', - 'fk_objective' => '44', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '45', - 'fk_objective' => '45', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '46', - 'fk_objective' => '46', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '47', - 'fk_objective' => '47', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '48', - 'fk_objective' => '48', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '49', - 'fk_objective' => '49', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '50', - 'fk_objective' => '50', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '51', - 'fk_objective' => '51', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '52', - 'fk_objective' => '52', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '53', - 'fk_objective' => '53', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '54', - 'fk_objective' => '54', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '55', - 'fk_objective' => '55', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '56', - 'fk_objective' => '56', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '57', - 'fk_objective' => '57', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '58', - 'fk_objective' => '58', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '59', - 'fk_objective' => '59', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '60', - 'fk_objective' => '60', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '61', - 'fk_objective' => '61', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '62', - 'fk_objective' => '62', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '63', - 'fk_objective' => '63', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '64', - 'fk_objective' => '64', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '65', - 'fk_objective' => '65', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '66', - 'fk_objective' => '66', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '67', - 'fk_objective' => '67', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '68', - 'fk_objective' => '68', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '69', - 'fk_objective' => '69', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '70', - 'fk_objective' => '70', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '71', - 'fk_objective' => '71', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '72', - 'fk_objective' => '72', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '73', - 'fk_objective' => '73', - 'fk_user_course' => '1', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '74', - 'fk_objective' => '177', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '75', - 'fk_objective' => '178', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '76', - 'fk_objective' => '179', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '77', - 'fk_objective' => '180', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '78', - 'fk_objective' => '181', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '79', - 'fk_objective' => '182', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '80', - 'fk_objective' => '183', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '81', - 'fk_objective' => '184', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '82', - 'fk_objective' => '185', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '83', - 'fk_objective' => '186', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '84', - 'fk_objective' => '187', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '85', - 'fk_objective' => '188', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '86', - 'fk_objective' => '189', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '87', - 'fk_objective' => '190', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '88', - 'fk_objective' => '191', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '89', - 'fk_objective' => '192', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '90', - 'fk_objective' => '193', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '91', - 'fk_objective' => '194', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '92', - 'fk_objective' => '195', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '93', - 'fk_objective' => '196', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '94', - 'fk_objective' => '197', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '95', - 'fk_objective' => '198', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '96', - 'fk_objective' => '199', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '97', - 'fk_objective' => '200', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '98', - 'fk_objective' => '201', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '99', - 'fk_objective' => '202', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '100', - 'fk_objective' => '203', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '101', - 'fk_objective' => '204', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '102', - 'fk_objective' => '205', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '103', - 'fk_objective' => '206', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '104', - 'fk_objective' => '207', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '105', - 'fk_objective' => '208', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '106', - 'fk_objective' => '209', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '107', - 'fk_objective' => '210', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '108', - 'fk_objective' => '211', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '109', - 'fk_objective' => '212', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '110', - 'fk_objective' => '213', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '111', - 'fk_objective' => '214', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '112', - 'fk_objective' => '215', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '113', - 'fk_objective' => '216', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '114', - 'fk_objective' => '217', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '115', - 'fk_objective' => '218', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '116', - 'fk_objective' => '219', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '117', - 'fk_objective' => '220', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '118', - 'fk_objective' => '221', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '119', - 'fk_objective' => '222', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '120', - 'fk_objective' => '223', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '121', - 'fk_objective' => '224', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '122', - 'fk_objective' => '225', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '123', - 'fk_objective' => '226', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '124', - 'fk_objective' => '227', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '125', - 'fk_objective' => '228', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '126', - 'fk_objective' => '229', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '127', - 'fk_objective' => '230', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '128', - 'fk_objective' => '231', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '129', - 'fk_objective' => '232', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '130', - 'fk_objective' => '233', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '131', - 'fk_objective' => '234', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '132', - 'fk_objective' => '235', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '133', - 'fk_objective' => '236', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '134', - 'fk_objective' => '237', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '135', - 'fk_objective' => '238', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '136', - 'fk_objective' => '239', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '137', - 'fk_objective' => '240', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '138', - 'fk_objective' => '241', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '139', - 'fk_objective' => '242', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '140', - 'fk_objective' => '243', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '141', - 'fk_objective' => '244', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '142', - 'fk_objective' => '245', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '143', - 'fk_objective' => '246', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '144', - 'fk_objective' => '247', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '145', - 'fk_objective' => '248', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '146', - 'fk_objective' => '249', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '147', - 'fk_objective' => '250', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '148', - 'fk_objective' => '251', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '149', - 'fk_objective' => '252', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '150', - 'fk_objective' => '253', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '151', - 'fk_objective' => '254', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '152', - 'fk_objective' => '255', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '153', - 'fk_objective' => '256', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '154', - 'fk_objective' => '257', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '155', - 'fk_objective' => '258', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '156', - 'fk_objective' => '259', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '157', - 'fk_objective' => '260', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '158', - 'fk_objective' => '261', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '159', - 'fk_objective' => '262', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '160', - 'fk_objective' => '263', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '161', - 'fk_objective' => '264', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '162', - 'fk_objective' => '265', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '163', - 'fk_objective' => '266', - 'fk_user_course' => '2', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '164', - 'fk_objective' => '267', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '165', - 'fk_objective' => '268', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '166', - 'fk_objective' => '269', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '167', - 'fk_objective' => '270', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '168', - 'fk_objective' => '271', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '169', - 'fk_objective' => '272', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '170', - 'fk_objective' => '273', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '171', - 'fk_objective' => '274', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '172', - 'fk_objective' => '275', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '173', - 'fk_objective' => '276', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '174', - 'fk_objective' => '277', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '175', - 'fk_objective' => '278', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '176', - 'fk_objective' => '279', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '177', - 'fk_objective' => '280', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '178', - 'fk_objective' => '281', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '179', - 'fk_objective' => '282', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '180', - 'fk_objective' => '283', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '181', - 'fk_objective' => '284', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '182', - 'fk_objective' => '285', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '183', - 'fk_objective' => '286', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '184', - 'fk_objective' => '287', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '185', - 'fk_objective' => '288', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '186', - 'fk_objective' => '289', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '187', - 'fk_objective' => '290', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '188', - 'fk_objective' => '291', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '189', - 'fk_objective' => '292', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '190', - 'fk_objective' => '293', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '191', - 'fk_objective' => '294', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '192', - 'fk_objective' => '295', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '193', - 'fk_objective' => '296', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '194', - 'fk_objective' => '297', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '195', - 'fk_objective' => '298', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '196', - 'fk_objective' => '299', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '197', - 'fk_objective' => '300', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '198', - 'fk_objective' => '301', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '199', - 'fk_objective' => '302', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '200', - 'fk_objective' => '303', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '201', - 'fk_objective' => '304', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '202', - 'fk_objective' => '305', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '203', - 'fk_objective' => '306', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '204', - 'fk_objective' => '307', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '205', - 'fk_objective' => '308', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '206', - 'fk_objective' => '309', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '207', - 'fk_objective' => '310', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '208', - 'fk_objective' => '311', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '209', - 'fk_objective' => '312', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '210', - 'fk_objective' => '313', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '211', - 'fk_objective' => '314', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '212', - 'fk_objective' => '315', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '213', - 'fk_objective' => '316', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '214', - 'fk_objective' => '317', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '215', - 'fk_objective' => '318', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '216', - 'fk_objective' => '319', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '217', - 'fk_objective' => '320', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '218', - 'fk_objective' => '321', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '219', - 'fk_objective' => '322', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '220', - 'fk_objective' => '323', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '221', - 'fk_objective' => '324', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '222', - 'fk_objective' => '325', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '223', - 'fk_objective' => '326', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '224', - 'fk_objective' => '327', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '225', - 'fk_objective' => '328', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '226', - 'fk_objective' => '329', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '227', - 'fk_objective' => '330', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '228', - 'fk_objective' => '331', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '229', - 'fk_objective' => '332', - 'fk_user_course' => '3', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '230', - 'fk_objective' => '1', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '231', - 'fk_objective' => '2', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '232', - 'fk_objective' => '3', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '233', - 'fk_objective' => '4', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '234', - 'fk_objective' => '5', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '235', - 'fk_objective' => '6', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '236', - 'fk_objective' => '7', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '237', - 'fk_objective' => '8', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '238', - 'fk_objective' => '9', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '239', - 'fk_objective' => '10', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '240', - 'fk_objective' => '11', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '241', - 'fk_objective' => '12', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '242', - 'fk_objective' => '13', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '243', - 'fk_objective' => '14', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '244', - 'fk_objective' => '15', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '245', - 'fk_objective' => '16', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '246', - 'fk_objective' => '17', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '247', - 'fk_objective' => '18', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '248', - 'fk_objective' => '19', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '249', - 'fk_objective' => '20', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '250', - 'fk_objective' => '21', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '251', - 'fk_objective' => '22', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '252', - 'fk_objective' => '23', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '253', - 'fk_objective' => '24', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '254', - 'fk_objective' => '25', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '255', - 'fk_objective' => '26', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '256', - 'fk_objective' => '27', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '257', - 'fk_objective' => '28', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '258', - 'fk_objective' => '29', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '259', - 'fk_objective' => '30', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '260', - 'fk_objective' => '31', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '261', - 'fk_objective' => '32', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '262', - 'fk_objective' => '33', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '263', - 'fk_objective' => '34', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '264', - 'fk_objective' => '35', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '265', - 'fk_objective' => '36', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '266', - 'fk_objective' => '37', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '267', - 'fk_objective' => '38', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '268', - 'fk_objective' => '39', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '269', - 'fk_objective' => '40', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '270', - 'fk_objective' => '41', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '271', - 'fk_objective' => '42', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '272', - 'fk_objective' => '43', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '273', - 'fk_objective' => '44', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '274', - 'fk_objective' => '45', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '275', - 'fk_objective' => '46', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '276', - 'fk_objective' => '47', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '277', - 'fk_objective' => '48', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '278', - 'fk_objective' => '49', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '279', - 'fk_objective' => '50', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '280', - 'fk_objective' => '51', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '281', - 'fk_objective' => '52', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '282', - 'fk_objective' => '53', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '283', - 'fk_objective' => '54', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '284', - 'fk_objective' => '55', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '285', - 'fk_objective' => '56', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '286', - 'fk_objective' => '57', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '287', - 'fk_objective' => '58', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '288', - 'fk_objective' => '59', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '289', - 'fk_objective' => '60', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '290', - 'fk_objective' => '61', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '291', - 'fk_objective' => '62', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '292', - 'fk_objective' => '63', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '293', - 'fk_objective' => '64', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '294', - 'fk_objective' => '65', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '295', - 'fk_objective' => '66', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '296', - 'fk_objective' => '67', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '297', - 'fk_objective' => '68', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '298', - 'fk_objective' => '69', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '299', - 'fk_objective' => '70', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '300', - 'fk_objective' => '71', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '301', - 'fk_objective' => '72', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - array ( - 'id' => '302', - 'fk_objective' => '73', - 'fk_user_course' => '4', - 'fk_acquisition_level' => '1', - ), - ]; - foreach ($acquisitionStatus as $acquisitionStatuse){ + $acquisition_status = array( + array('id' => '1','fk_objective' => '1','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '2','fk_objective' => '2','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '3','fk_objective' => '3','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '4','fk_objective' => '4','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '5','fk_objective' => '5','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '6','fk_objective' => '6','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '7','fk_objective' => '7','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '8','fk_objective' => '8','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '9','fk_objective' => '9','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '10','fk_objective' => '10','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '11','fk_objective' => '11','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '12','fk_objective' => '12','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '13','fk_objective' => '13','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '14','fk_objective' => '14','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '15','fk_objective' => '15','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '16','fk_objective' => '16','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '17','fk_objective' => '17','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '18','fk_objective' => '18','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '19','fk_objective' => '19','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '20','fk_objective' => '20','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '21','fk_objective' => '21','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '22','fk_objective' => '22','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '23','fk_objective' => '23','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '24','fk_objective' => '24','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '25','fk_objective' => '25','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '26','fk_objective' => '26','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '27','fk_objective' => '27','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '28','fk_objective' => '28','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '29','fk_objective' => '29','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '30','fk_objective' => '30','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '31','fk_objective' => '31','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '32','fk_objective' => '32','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '33','fk_objective' => '33','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '34','fk_objective' => '34','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '35','fk_objective' => '35','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '36','fk_objective' => '36','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '37','fk_objective' => '37','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '38','fk_objective' => '38','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '39','fk_objective' => '39','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '40','fk_objective' => '40','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '41','fk_objective' => '41','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '42','fk_objective' => '42','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '43','fk_objective' => '43','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '44','fk_objective' => '44','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '45','fk_objective' => '45','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '46','fk_objective' => '46','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '47','fk_objective' => '47','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '48','fk_objective' => '48','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '49','fk_objective' => '49','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '50','fk_objective' => '50','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '51','fk_objective' => '51','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '52','fk_objective' => '52','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '53','fk_objective' => '53','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '54','fk_objective' => '54','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '55','fk_objective' => '55','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '56','fk_objective' => '56','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '57','fk_objective' => '57','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '58','fk_objective' => '58','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '59','fk_objective' => '59','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '60','fk_objective' => '60','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '61','fk_objective' => '61','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '62','fk_objective' => '62','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '63','fk_objective' => '63','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '64','fk_objective' => '64','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '65','fk_objective' => '65','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '66','fk_objective' => '66','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '67','fk_objective' => '67','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '68','fk_objective' => '68','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '69','fk_objective' => '69','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '70','fk_objective' => '70','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '71','fk_objective' => '71','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '72','fk_objective' => '72','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '73','fk_objective' => '73','fk_user_course' => '1','fk_acquisition_level' => '1'), + array('id' => '74','fk_objective' => '177','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '75','fk_objective' => '178','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '76','fk_objective' => '179','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '77','fk_objective' => '180','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '78','fk_objective' => '181','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '79','fk_objective' => '182','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '80','fk_objective' => '183','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '81','fk_objective' => '184','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '82','fk_objective' => '185','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '83','fk_objective' => '186','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '84','fk_objective' => '187','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '85','fk_objective' => '188','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '86','fk_objective' => '189','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '87','fk_objective' => '190','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '88','fk_objective' => '191','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '89','fk_objective' => '192','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '90','fk_objective' => '193','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '91','fk_objective' => '194','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '92','fk_objective' => '195','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '93','fk_objective' => '196','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '94','fk_objective' => '197','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '95','fk_objective' => '198','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '96','fk_objective' => '199','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '97','fk_objective' => '200','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '98','fk_objective' => '201','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '99','fk_objective' => '202','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '100','fk_objective' => '203','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '101','fk_objective' => '204','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '102','fk_objective' => '205','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '103','fk_objective' => '206','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '104','fk_objective' => '207','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '105','fk_objective' => '208','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '106','fk_objective' => '209','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '107','fk_objective' => '210','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '108','fk_objective' => '211','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '109','fk_objective' => '212','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '110','fk_objective' => '213','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '111','fk_objective' => '214','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '112','fk_objective' => '215','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '113','fk_objective' => '216','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '114','fk_objective' => '217','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '115','fk_objective' => '218','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '116','fk_objective' => '219','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '117','fk_objective' => '220','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '118','fk_objective' => '221','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '119','fk_objective' => '222','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '120','fk_objective' => '223','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '121','fk_objective' => '224','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '122','fk_objective' => '225','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '123','fk_objective' => '226','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '124','fk_objective' => '227','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '125','fk_objective' => '228','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '126','fk_objective' => '229','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '127','fk_objective' => '230','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '128','fk_objective' => '231','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '129','fk_objective' => '232','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '130','fk_objective' => '233','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '131','fk_objective' => '234','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '132','fk_objective' => '235','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '133','fk_objective' => '236','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '134','fk_objective' => '237','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '135','fk_objective' => '238','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '136','fk_objective' => '239','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '137','fk_objective' => '240','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '138','fk_objective' => '241','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '139','fk_objective' => '242','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '140','fk_objective' => '243','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '141','fk_objective' => '244','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '142','fk_objective' => '245','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '143','fk_objective' => '246','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '144','fk_objective' => '247','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '145','fk_objective' => '248','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '146','fk_objective' => '249','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '147','fk_objective' => '250','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '148','fk_objective' => '251','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '149','fk_objective' => '252','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '150','fk_objective' => '253','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '151','fk_objective' => '254','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '152','fk_objective' => '255','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '153','fk_objective' => '256','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '154','fk_objective' => '257','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '155','fk_objective' => '258','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '156','fk_objective' => '259','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '157','fk_objective' => '260','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '158','fk_objective' => '261','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '159','fk_objective' => '262','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '160','fk_objective' => '263','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '161','fk_objective' => '264','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '162','fk_objective' => '265','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '163','fk_objective' => '266','fk_user_course' => '2','fk_acquisition_level' => '1'), + array('id' => '164','fk_objective' => '267','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '165','fk_objective' => '268','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '166','fk_objective' => '269','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '167','fk_objective' => '270','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '168','fk_objective' => '271','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '169','fk_objective' => '272','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '170','fk_objective' => '273','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '171','fk_objective' => '274','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '172','fk_objective' => '275','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '173','fk_objective' => '276','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '174','fk_objective' => '277','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '175','fk_objective' => '278','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '176','fk_objective' => '279','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '177','fk_objective' => '280','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '178','fk_objective' => '281','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '179','fk_objective' => '282','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '180','fk_objective' => '283','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '181','fk_objective' => '284','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '182','fk_objective' => '285','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '183','fk_objective' => '286','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '184','fk_objective' => '287','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '185','fk_objective' => '288','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '186','fk_objective' => '289','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '187','fk_objective' => '290','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '188','fk_objective' => '291','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '189','fk_objective' => '292','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '190','fk_objective' => '293','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '191','fk_objective' => '294','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '192','fk_objective' => '295','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '193','fk_objective' => '296','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '194','fk_objective' => '297','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '195','fk_objective' => '298','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '196','fk_objective' => '299','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '197','fk_objective' => '300','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '198','fk_objective' => '301','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '199','fk_objective' => '302','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '200','fk_objective' => '303','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '201','fk_objective' => '304','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '202','fk_objective' => '305','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '203','fk_objective' => '306','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '204','fk_objective' => '307','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '205','fk_objective' => '308','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '206','fk_objective' => '309','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '207','fk_objective' => '310','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '208','fk_objective' => '311','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '209','fk_objective' => '312','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '210','fk_objective' => '313','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '211','fk_objective' => '314','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '212','fk_objective' => '315','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '213','fk_objective' => '316','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '214','fk_objective' => '317','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '215','fk_objective' => '318','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '216','fk_objective' => '319','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '217','fk_objective' => '320','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '218','fk_objective' => '321','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '219','fk_objective' => '322','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '220','fk_objective' => '323','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '221','fk_objective' => '324','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '222','fk_objective' => '325','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '223','fk_objective' => '326','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '224','fk_objective' => '327','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '225','fk_objective' => '328','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '226','fk_objective' => '329','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '227','fk_objective' => '330','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '228','fk_objective' => '331','fk_user_course' => '3','fk_acquisition_level' => '1'), + array('id' => '229','fk_objective' => '332','fk_user_course' => '3','fk_acquisition_level' => '1') + ); + foreach ($acquisition_status as $acquisitionStatuse){ $this->db->table('acquisition_status')->insert($acquisitionStatuse); } diff --git a/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php b/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php new file mode 100644 index 00000000..812516cf --- /dev/null +++ b/orif/plafor/Database/Seeds/addCompetenceDomain2021Datas.php @@ -0,0 +1,37 @@ + '21','fk_course_plan' => '5','symbol' => 'A','name' => 'Suivi des projets ICT','archive' => NULL), + array('id' => '22','fk_course_plan' => '5','symbol' => 'B','name' => 'Assistance et conseils dans l’environnement ICT','archive' => NULL), + array('id' => '23','fk_course_plan' => '5','symbol' => 'C','name' => 'Création et maintenance de données numériques','archive' => NULL), + array('id' => '24','fk_course_plan' => '5','symbol' => 'D','name' => 'Fourniture et exploitation de solutions ICT','archive' => NULL), + array('id' => '25','fk_course_plan' => '5','symbol' => 'E','name' => 'Exploitation des réseaux','archive' => NULL), + array('id' => '26','fk_course_plan' => '5','symbol' => 'F','name' => 'Exploitation des systèmes de serveurs et de leurs services','archive' => NULL), + array('id' => '27','fk_course_plan' => '6','symbol' => 'A','name' => 'Suivi des projets ICT','archive' => NULL), + array('id' => '28','fk_course_plan' => '6','symbol' => 'B','name' => 'Assistance et conseils dans l’environnement ICT','archive' => NULL), + array('id' => '29','fk_course_plan' => '6','symbol' => 'C','name' => 'Création et maintenance de données numériques','archive' => NULL), + array('id' => '30','fk_course_plan' => '6','symbol' => 'G','name' => 'Développement d’applications','archive' => NULL), + array('id' => '31','fk_course_plan' => '6','symbol' => 'H','name' => 'Délivrance et fonctionnement des applications','archive' => NULL), + array('id' => '32','fk_course_plan' => '7','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '33','fk_course_plan' => '7','symbol' => 'B','name' => 'Mise en service de serveurs et réseaux','archive' => NULL), + array('id' => '34','fk_course_plan' => '7','symbol' => 'C','name' => 'Garantie de l’exploitation TIC ','archive' => NULL), + array('id' => '35','fk_course_plan' => '7','symbol' => 'D','name' => 'Assistance aux utilisateurs','archive' => NULL), + array('id' => '36','fk_course_plan' => '7','symbol' => 'E','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '37','fk_course_plan' => '7','symbol' => 'F','name' => 'Travaux dans le cadre de projets','archive' => NULL) + ); + + foreach ($competence_domains as $competence_domain) + $this->db->table('competence_domain')->insert($competence_domain); + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php index 22bf5ca2..ea5190fc 100644 --- a/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php +++ b/orif/plafor/Database/Seeds/addCompetenceDomainDatas.php @@ -11,212 +11,30 @@ class addCompetenceDomainDatas extends Seeder public function run() { //Competence domain// - $competence_domains=[ - array ( - 'id' => '1', - 'fk_course_plan' => '1', - 'symbol' => 'A', - 'name' => 'Saisie, interprétation et mise en œuvre des exigences des applications', - 'archive' => NULL, - ), - array ( - 'id' => '2', - 'fk_course_plan' => '1', - 'symbol' => 'B', - 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_course_plan' => '1', - 'symbol' => 'C', - 'name' => 'Création et maintenance de données ainsi que de leurs structures ', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_course_plan' => '1', - 'symbol' => 'D', - 'name' => ' Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_course_plan' => '1', - 'symbol' => 'E', - 'name' => 'Travail sur des projets', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_course_plan' => '2', - 'symbol' => 'AA', - 'name' => 'Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_course_plan' => '2', - 'symbol' => 'B', - 'name' => 'Mise en service de serveurs et réseaux', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_course_plan' => '2', - 'symbol' => 'C', - 'name' => 'Garantie de l’exploitation TIC ', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_course_plan' => '2', - 'symbol' => 'D', - 'name' => 'Assistance aux utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_course_plan' => '2', - 'symbol' => 'E', - 'name' => 'Développement d’applications en tenant compte des caractéristiques de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_course_plan' => '2', - 'symbol' => 'F', - 'name' => 'Travaux dans le cadre de projets', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_course_plan' => '3', - 'symbol' => 'A', - 'name' => 'Mise en service d’appareils TIC', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_course_plan' => '3', - 'symbol' => 'B', - 'name' => 'Planification, installation, et configuration des réseaux', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_course_plan' => '3', - 'symbol' => 'C', - 'name' => 'Planification, installation, et configuration des serveurs', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_course_plan' => '3', - 'symbol' => 'D', - 'name' => 'Maintenance de réseaux et serveurs', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_course_plan' => '3', - 'symbol' => 'E', - 'name' => 'Travail sur des projets', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_course_plan' => '4', - 'symbol' => 'A', - 'name' => 'Installation, mise en service et maintenance de terminaux ICT utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_course_plan' => '4', - 'symbol' => 'B', - 'name' => 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_course_plan' => '4', - 'symbol' => 'C', - 'name' => 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_course_plan' => '4', - 'symbol' => 'D', - 'name' => 'Déroulement de travaux de support ICT', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_course_plan' => '1', - 'symbol' => 'XXX', - 'name' => 'TEST1', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_course_plan' => '1', - 'symbol' => 'vvvvvvvvv', - 'name' => 'vvvvvvvvvvvvvvvvvvvvvvvvvvv', - 'archive' => '2021-06-02 08:41:37', - ), - array ( - 'id' => '23', - 'fk_course_plan' => '1', - 'symbol' => 'vvvvvvvvv', - 'name' => 'vvvvvvv', - 'archive' => '2021-06-02 08:41:52', - ), - array ( - 'id' => '24', - 'fk_course_plan' => '1', - 'symbol' => '11', - 'name' => '11', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_course_plan' => '1', - 'symbol' => '11', - 'name' => '11', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_course_plan' => '1', - 'symbol' => 'XXX', - 'name' => 'TEST1', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_course_plan' => '1', - 'symbol' => 'ABCD', - 'name' => 'abcd', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_course_plan' => '1', - 'symbol' => 'AAA', - 'name' => 'plan', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_course_plan' => '1', - 'symbol' => 'BBB', - 'name' => 'bbb', - 'archive' => NULL, - ), - ]; - foreach ($competence_domains as $competence_domain) + $competence_domain = array( + array('id' => '1','fk_course_plan' => '1','symbol' => 'A','name' => 'Saisie, interprétation et mise en œuvre des exigences des applications','archive' => NULL), + array('id' => '2','fk_course_plan' => '1','symbol' => 'B','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '3','fk_course_plan' => '1','symbol' => 'C','name' => 'Création et maintenance de données ainsi que de leurs structures ','archive' => NULL), + array('id' => '4','fk_course_plan' => '1','symbol' => 'D','name' => ' Mise en service d’appareils TIC','archive' => NULL), + array('id' => '5','fk_course_plan' => '1','symbol' => 'E','name' => 'Travail sur des projets','archive' => NULL), + array('id' => '6','fk_course_plan' => '2','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '7','fk_course_plan' => '2','symbol' => 'B','name' => 'Mise en service de serveurs et réseaux','archive' => NULL), + array('id' => '8','fk_course_plan' => '2','symbol' => 'C','name' => 'Garantie de l’exploitation TIC ','archive' => NULL), + array('id' => '9','fk_course_plan' => '2','symbol' => 'D','name' => 'Assistance aux utilisateurs','archive' => NULL), + array('id' => '10','fk_course_plan' => '2','symbol' => 'E','name' => 'Développement d’applications en tenant compte des caractéristiques de qualité','archive' => NULL), + array('id' => '11','fk_course_plan' => '2','symbol' => 'F','name' => 'Travaux dans le cadre de projets','archive' => NULL), + array('id' => '12','fk_course_plan' => '3','symbol' => 'A','name' => 'Mise en service d’appareils TIC','archive' => NULL), + array('id' => '13','fk_course_plan' => '3','symbol' => 'B','name' => 'Planification, installation, et configuration des réseaux','archive' => NULL), + array('id' => '14','fk_course_plan' => '3','symbol' => 'C','name' => 'Planification, installation, et configuration des serveurs','archive' => NULL), + array('id' => '15','fk_course_plan' => '3','symbol' => 'D','name' => 'Maintenance de réseaux et serveurs','archive' => NULL), + array('id' => '16','fk_course_plan' => '3','symbol' => 'E','name' => 'Travail sur des projets','archive' => NULL), + array('id' => '17','fk_course_plan' => '4','symbol' => 'A','name' => 'Installation, mise en service et maintenance de terminaux ICT utilisateurs','archive' => NULL), + array('id' => '18','fk_course_plan' => '4','symbol' => 'B','name' => 'Garantie du bon fonctionnement de l’exploitation de terminaux ICT utilisateurs en réseau','archive' => NULL), + array('id' => '19','fk_course_plan' => '4','symbol' => 'C','name' => 'Soutien des utilisateurs dans la mise en œuvre des moyens ICT','archive' => NULL), + array('id' => '20','fk_course_plan' => '4','symbol' => 'D','name' => 'Déroulement de travaux de support ICT','archive' => NULL) + ); + + foreach ($competence_domain as $competence_domain) $this->db->table('competence_domain')->insert($competence_domain); } diff --git a/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php b/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php new file mode 100644 index 00000000..4cfc900a --- /dev/null +++ b/orif/plafor/Database/Seeds/addCoursePlan2021Datas.php @@ -0,0 +1,19 @@ + '5','formation_number' => '88611','official_name' => ' Informaticienne / Informaticien Sys','date_begin' => '2020-11-19','archive' => NULL), + array('id' => '6','formation_number' => '88611','official_name' => ' Informaticienne / Informaticien Dev','date_begin' => '2020-11-19','archive' => NULL), + array('id' => '7','formation_number' => '88614','official_name' => ' Informaticienne d\'entreprise, Informaticien d\'entreprise','date_begin' => '0000-00-00','archive' => NULL) + ); + foreach ($course_plans as $course_plan){ + $this->db->table('course_plan')->insert($course_plan); + } + } +} + +?> \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addCoursePlanDatas.php b/orif/plafor/Database/Seeds/addCoursePlanDatas.php index 10277959..0fe256ba 100644 --- a/orif/plafor/Database/Seeds/addCoursePlanDatas.php +++ b/orif/plafor/Database/Seeds/addCoursePlanDatas.php @@ -11,72 +11,14 @@ class addCoursePlanDatas extends Seeder public function run() { //course_plan// - $course_plans=[ - array ( - 'id' => '1', - 'formation_number' => '88601', - 'official_name' => ' Informaticien/-ne CFC Développement d\'applications', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '2', - 'formation_number' => '88602', - 'official_name' => ' Informaticien/-ne CFC Informatique d\'entreprise', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'formation_number' => '88603', - 'official_name' => ' Informaticien/-ne CFC Technique des systèmes', - 'date_begin' => '2014-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'formation_number' => '88605', - 'official_name' => ' Opératrice en informatique / Opérateur en informatique CFC', - 'date_begin' => '2018-08-01', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'formation_number' => '123', - 'official_name' => 'tester', - 'date_begin' => '2021-06-02', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'formation_number' => '12', - 'official_name' => 'a', - 'date_begin' => '2021-06-07', - 'archive' => '2021-06-07 13:49:26', - ), - array ( - 'id' => '7', - 'formation_number' => '145', - 'official_name' => 'qwertz', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'formation_number' => '2211', - 'official_name' => 'dada', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'formation_number' => '12341', - 'official_name' => 'asaasassa', - 'date_begin' => '2021-06-07', - 'archive' => NULL, - ), - ]; - foreach ($course_plans as $course_plan){ + $course_plan = array( + array('id' => '1','formation_number' => '88601','official_name' => ' Informaticien/-ne CFC Développement d\'applications','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '2','formation_number' => '88602','official_name' => ' Informaticien/-ne CFC Informatique d\'entreprise','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '3','formation_number' => '88603','official_name' => ' Informaticien/-ne CFC Technique des systèmes','date_begin' => '2014-08-01','archive' => NULL), + array('id' => '4','formation_number' => '88605','official_name' => ' Opératrice en informatique / Opérateur en informatique CFC','date_begin' => '2018-08-01','archive' => NULL) + ); + + foreach ($course_plan as $course_plan){ $this->db->table('course_plan')->insert($course_plan); } } diff --git a/orif/plafor/Database/Seeds/addObjective2021Datas.php b/orif/plafor/Database/Seeds/addObjective2021Datas.php new file mode 100644 index 00000000..004db6db --- /dev/null +++ b/orif/plafor/Database/Seeds/addObjective2021Datas.php @@ -0,0 +1,434 @@ + '333','fk_operational_competence' => '75','symbol' => 'A1.1','taxonomy' => '3','name' => 'Ils clarifient les objectifs du projet ICT et ses paramètres généraux tels que coûts, durée, qualité, périmètre, responsabilités et méthodologie.','archive' => NULL), + array('id' => '334','fk_operational_competence' => '75','symbol' => 'A1.2','taxonomy' => '5','name' => 'Ils appliquent diverses techniques d’audition et d’observation (p. ex. questions ouvertes, questions fermées, réunion, workshop, technique du shadowing, simulation de la solution à rechercher en opérant un saut dans le temps.','archive' => NULL), + array('id' => '335','fk_operational_competence' => '75','symbol' => 'A1.3','taxonomy' => '4','name' => 'Ils analysent le contexte du système, procèdent à une délimitation du système et du contexte et identifient les interfaces.','archive' => NULL), + array('id' => '336','fk_operational_competence' => '75','symbol' => 'A1.4','taxonomy' => '5','name' => 'Ils élaborent des solutions pour prévenir les éventuels conflits d’objectifs.','archive' => NULL), + array('id' => '337','fk_operational_competence' => '75','symbol' => 'A1.5','taxonomy' => '5','name' => 'Ils transposent la définition exprimée dans le langage naturel (des parties prenantes) dans une documentation modélisée contenant des objectifs et des exigences de projet clairs, non ambigus et référençables.','archive' => NULL), + array('id' => '338','fk_operational_competence' => '75','symbol' => 'A1.6','taxonomy' => '4','name' => 'Ils vérifient les objectifs et exigences de projet définis quant à leur mesurabilité, cohé- rence, exhaustivité, nécessité, exactitude et référençabilité.','archive' => NULL), + array('id' => '339','fk_operational_competence' => '75','symbol' => 'A1.7','taxonomy' => '3','name' => 'Ils définissent les caractéristiques de traitement des exigences et objectifs de projet individuels (p. ex. gestion des versions, identificateur de référençabilité, description, auteur, source, criticité, priorité).','archive' => NULL), + array('id' => '340','fk_operational_competence' => '76','symbol' => 'A2.1','taxonomy' => '4','name' => 'Ils analysent les paramètres et les conditions données par le mandant.','archive' => NULL), + array('id' => '341','fk_operational_competence' => '76','symbol' => 'A2.2','taxonomy' => '4','name' => 'Ils pèsent les avantages et inconvénients de divers modèles de procédure planifiés ou agiles (itératifs, incrémentaux) en relation avec le projet ICT et sélectionnent le modèle ap- proprié.','archive' => NULL), + array('id' => '342','fk_operational_competence' => '76','symbol' => 'A2.3','taxonomy' => '5','name' => 'Ils adaptent le modèle de procédure aux spécificités du projet (process tailoring).','archive' => NULL), + array('id' => '343','fk_operational_competence' => '77','symbol' => 'A3.1','taxonomy' => '4','name' => 'Ils cherchent de façon ciblée et systématique des informations de sources numériques et analogiques.','archive' => NULL), + array('id' => '344','fk_operational_competence' => '77','symbol' => 'A3.2','taxonomy' => '4','name' => 'Ils identifient les sources fiables.','archive' => NULL), + array('id' => '345','fk_operational_competence' => '77','symbol' => 'A3.3','taxonomy' => '4','name' => 'Ils comparent plusieurs variantes issues des résultats obtenus et les évaluent.','archive' => NULL), + array('id' => '346','fk_operational_competence' => '77','symbol' => 'A3.4','taxonomy' => '4','name' => 'Ils montrent le potentiel technique des variantes et leurs risques.','archive' => NULL), + array('id' => '347','fk_operational_competence' => '77','symbol' => 'A3.5','taxonomy' => '5','name' => 'Ils établissent une preuve de concept technique (PoC).','archive' => NULL), + array('id' => '348','fk_operational_competence' => '78','symbol' => 'A4.1','taxonomy' => '3','name' => 'Ils découpent une tâche globale en activités plus restreintes, plus facilement évaluables et attribuables à une ressource.','archive' => NULL), + array('id' => '349','fk_operational_competence' => '78','symbol' => 'A4.2','taxonomy' => '4','name' => 'Ils identifient les activités selon la charge et la durée de travail.','archive' => NULL), + array('id' => '350','fk_operational_competence' => '78','symbol' => 'A4.3','taxonomy' => '4','name' => 'Ils évaluent la charge, la durée et le degré de complexité des activités.','archive' => NULL), + array('id' => '351','fk_operational_competence' => '78','symbol' => 'A4.4','taxonomy' => '4','name' => 'Ils clarifient les dépendances séquentielles des activités et en définissent l’ordre chrono- logique.','archive' => NULL), + array('id' => '352','fk_operational_competence' => '78','symbol' => 'A4.5','taxonomy' => '3','name' => 'Ils regroupent et priorisent les activités nécessaires à la réalisation d’un objectif inter- médiaire sur la base de directives temporelles ou fonctionnelles.','archive' => NULL), + array('id' => '353','fk_operational_competence' => '79','symbol' => 'A5.1','taxonomy' => '4','name' => 'Ils identifient le groupe cible et ses besoins en informations sur une solution ICT selon un catalogue des exigences.','archive' => NULL), + array('id' => '354','fk_operational_competence' => '79','symbol' => 'A5.2','taxonomy' => '4','name' => 'Ils identifient les caractéristiques des solutions ICT qui sont propres au groupe cible.','archive' => NULL), + array('id' => '355','fk_operational_competence' => '79','symbol' => 'A5.3','taxonomy' => '5','name' => 'Ils regroupent les constats tirés de ces caractéristiques sous une forme visuelle adaptée au groupe cible et au problème (p. ex. tableau à feuilles, tableau blanc, programme de présen- tation, vidéoconférence.','archive' => NULL), + array('id' => '356','fk_operational_competence' => '79','symbol' => 'A5.4','taxonomy' => '5','name' => 'Ils présentent leurs propositions de solution de façon probante et convaincante (p. ex. storytelling).','archive' => NULL), + array('id' => '357','fk_operational_competence' => '80','symbol' => 'A6.1','taxonomy' => '3','name' => 'Ils établissent une évaluation sur l’état d’avancement des mandats assignés (personnel- lement ou au moyen d’un outil).','archive' => NULL), + array('id' => '358','fk_operational_competence' => '80','symbol' => 'A6.2','taxonomy' => '4','name' => 'Ils catégorisent et priorisent les évaluations recueillies.','archive' => NULL), + array('id' => '359','fk_operational_competence' => '80','symbol' => 'A6.3','taxonomy' => '5','name' => 'Ils consolident les évaluations et élaborent, si nécessaire, des propositions de mesures correctives.','archive' => NULL), + array('id' => '360','fk_operational_competence' => '80','symbol' => 'A6.4','taxonomy' => '3','name' => 'Ils consignent l’état d’avancement du projet et le présentent sous forme visuelle.','archive' => NULL), + array('id' => '361','fk_operational_competence' => '80','symbol' => 'A6.5','taxonomy' => '3','name' => 'Ils font état, sous forme résumée, des résultats relatifs à l’avancement du projet selon le modèle de procédure spécifique au projet.','archive' => NULL), + array('id' => '362','fk_operational_competence' => '81','symbol' => 'A7.1','taxonomy' => '3','name' => 'Ils identifient auprès du mandant les personnes à impliquer.','archive' => NULL), + array('id' => '363','fk_operational_competence' => '81','symbol' => 'A7.2','taxonomy' => '3','name' => 'Ils définissent conjointement avec le mandant les critères et la procédure de réception ainsi que la chronologie de la remise.','archive' => NULL), + array('id' => '364','fk_operational_competence' => '81','symbol' => 'A7.3','taxonomy' => '3','name' => 'Ils mettent à disposition la documentation convenue dans le mandat de projet.','archive' => NULL), + array('id' => '365','fk_operational_competence' => '81','symbol' => 'A7.4','taxonomy' => '3','name' => 'Ils planifient une formation/instruction.','archive' => NULL), + array('id' => '366','fk_operational_competence' => '81','symbol' => 'A7.5','taxonomy' => '5','name' => 'Ils préparent les supports de formation.','archive' => NULL), + array('id' => '367','fk_operational_competence' => '81','symbol' => 'A7.6','taxonomy' => '3','name' => 'Ils procèdent à la réception du projet par le mandant selon les critères définis et établis- sent un procès-verbal de réception.','archive' => NULL), + array('id' => '368','fk_operational_competence' => '81','symbol' => 'A7.7','taxonomy' => '3','name' => 'Ils archivent et sauvegardent leur travail selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '369','fk_operational_competence' => '82','symbol' => 'B1.1','taxonomy' => '3','name' => 'Ils équipent leur ordinateur d’un système d’exploitation.','archive' => NULL), + array('id' => '370','fk_operational_competence' => '82','symbol' => 'B1.2','taxonomy' => '3','name' => 'Ils relient leur ordinateur au réseau et testent la connexion.','archive' => NULL), + array('id' => '371','fk_operational_competence' => '82','symbol' => 'B1.3','taxonomy' => '3','name' => 'Ils configurent les mesures de sécurité requises (pare-feu, systèmes antivirus, etc.) selon les directives de l’entreprise.','archive' => NULL), + array('id' => '372','fk_operational_competence' => '82','symbol' => 'B1.4','taxonomy' => '3','name' => 'Ils installent les logiciels, les testent et effectuent, si nécessaire, les mises à jour.','archive' => NULL), + array('id' => '373','fk_operational_competence' => '82','symbol' => 'B1.5','taxonomy' => '3','name' => 'Ils relient leur ordinateur aux autres périphériques et testent leur fonctionnement.','archive' => NULL), + array('id' => '374','fk_operational_competence' => '82','symbol' => 'B1.6','taxonomy' => '3','name' => 'Ils installent et règlent leurs bureau et chaise conformément aux principes ergono- miques.','archive' => NULL), + array('id' => '375','fk_operational_competence' => '83','symbol' => 'B2.1','taxonomy' => '4','name' => 'Ils analysent des demandes d’assistance complexes de façon systématique (p. ex. à l’aide d’un catalogue de questions ou d’une check-list).','archive' => NULL), + array('id' => '376','fk_operational_competence' => '83','symbol' => 'B2.2','taxonomy' => '5','name' => 'Au moyen de méthodes adéquates ou dans le cadre de collaborations, ils élaborent des solutions.','archive' => NULL), + array('id' => '377','fk_operational_competence' => '83','symbol' => 'B2.3','taxonomy' => '3','name' => 'Ils documentent les solutions selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '378','fk_operational_competence' => '83','symbol' => 'B2.4','taxonomy' => '3','name' => 'Ils préparent les solutions conformément au groupe cible (p. ex. pour l’assistance de 2e niveau) et les communiquent.','archive' => NULL), + array('id' => '379','fk_operational_competence' => '84','symbol' => 'B3.1','taxonomy' => '4','name' => 'Ils clarifient la situation en matière de sécurité auprès du mandant en posant des ques- tions ciblées sur les systèmes, réseaux, logiciels et données.','archive' => NULL), + array('id' => '380','fk_operational_competence' => '84','symbol' => 'B3.2','taxonomy' => '3','name' => 'Ils informent le mandant sur les dangers liés au réseau et au traitement des données sensibles.','archive' => NULL), + array('id' => '381','fk_operational_competence' => '84','symbol' => 'B3.3','taxonomy' => '5','name' => 'Ils proposent les mesures de protection nécessaires et recommandées pour les do- maines examinés.','archive' => NULL), + array('id' => '382','fk_operational_competence' => '84','symbol' => 'B3.4','taxonomy' => '4','name' => 'Ils forment les collaborateurs dans l’application des directives informatiques propres à l’entreprise. (C5) b4.1 Ils identifient les informations déterminantes sur les processus (intitulé, événement dé- clencheur, résultat, déclencheur, destinataire).','archive' => NULL), + array('id' => '383','fk_operational_competence' => '85','symbol' => 'B4.2','taxonomy' => '4','name' => 'Ils découpent, dans le cadre d’une analyse des tâches, les processus métier en étapes individuelles.','archive' => NULL), + array('id' => '384','fk_operational_competence' => '85','symbol' => 'B4.3','taxonomy' => '3','name' => 'Ils documentent le déroulement du processus et le représentent graphiquement selon les standards de description reconnus et usuels.','archive' => NULL), + array('id' => '385','fk_operational_competence' => '85','symbol' => 'B4.4','taxonomy' => '3','name' => 'Ils précisent le déroulement du processus avec des informations complémentaires telles que les outils requis, les exécutants et la description du résultat (output).','archive' => NULL), + array('id' => '386','fk_operational_competence' => '86','symbol' => 'C1.1','taxonomy' => '4','name' => 'Ils examinent les données issues de sources de données structurées ou non structurées avant de les classer selon le modèle 4V.','archive' => NULL), + array('id' => '387','fk_operational_competence' => '86','symbol' => 'C1.2','taxonomy' => '4','name' => 'Ils analysent les données quant à leur précision, à leur concision et à leur incohérence et les nettoient si nécessaire.','archive' => NULL), + array('id' => '388','fk_operational_competence' => '86','symbol' => 'C1.3','taxonomy' => '4','name' => 'Ils recueillent, à partir des formes d’analyse existantes (rapports), des indicateurs/points de repère pour la création du modèle.','archive' => NULL), + array('id' => '389','fk_operational_competence' => '86','symbol' => 'C1.4','taxonomy' => '3','name' => 'Ils définissent, selon le type de donnée, des cas de test appropriés pour l’exactitude des données.','archive' => NULL), + array('id' => '390','fk_operational_competence' => '86','symbol' => 'C1.5','taxonomy' => '4','name' => 'Ils définissent une structure adéquate pour les données nettoyées.','archive' => NULL), + array('id' => '391','fk_operational_competence' => '86','symbol' => 'C1.6','taxonomy' => '3','name' => 'Ils normalisent le modèle de données.','archive' => NULL), + array('id' => '392','fk_operational_competence' => '86','symbol' => 'C1.7','taxonomy' => '3','name' => 'Ils représentent le modèle sous une forme appropriée.','archive' => NULL), + array('id' => '393','fk_operational_competence' => '87','symbol' => 'C2.1','taxonomy' => '3','name' => 'Ils choisissent un dispositif de stockage de données numériques approprié (p. ex. objet- relationnel, relationnel, distribué/centralisé).','archive' => NULL), + array('id' => '394','fk_operational_competence' => '87','symbol' => 'C2.2','taxonomy' => '3','name' => 'Ils implémentent le modèle de données normalisé pour le stockage en tenant compte de l’intégrité référentielle.','archive' => NULL), + array('id' => '395','fk_operational_competence' => '87','symbol' => 'C2.3','taxonomy' => '5','name' => 'Ils planifient les tests de fonction et de performance et préparent les données de test requises.','archive' => NULL), + array('id' => '396','fk_operational_competence' => '87','symbol' => 'C2.4','taxonomy' => '3','name' => 'Ils exécutent les tests de fonction et de performance.','archive' => NULL), + array('id' => '397','fk_operational_competence' => '87','symbol' => 'C2.5','taxonomy' => '4','name' => 'Ils évaluent les tests de fonction et de performance.','archive' => NULL), + array('id' => '398','fk_operational_competence' => '87','symbol' => 'C2.6','taxonomy' => '5','name' => 'Ils planifient, à partir de divers systèmes source, les migrations de données vers un sys- tème cible et les exécutent.','archive' => NULL), + array('id' => '399','fk_operational_competence' => '87','symbol' => 'C2.7','taxonomy' => '4','name' => 'Ils vérifient l’exhaustivité, l’intégrité et l’exactitude des données migrées vers le système cible.','archive' => NULL), + array('id' => '400','fk_operational_competence' => '88','symbol' => 'C3.1','taxonomy' => '4','name' => 'Ils identifient les données sensibles et les catégorisent.','archive' => NULL), + array('id' => '401','fk_operational_competence' => '88','symbol' => 'C3.2','taxonomy' => '4','name' => 'Ils clarifient les mécanismes de protection nécessaires selon la sensibilité des données et les qualifient.','archive' => NULL), + array('id' => '402','fk_operational_competence' => '88','symbol' => 'C3.4','taxonomy' => '3','name' => 'Ils élaborent un concept de sécurité des données et des rôles conformément au mandat.','archive' => NULL), + array('id' => '403','fk_operational_competence' => '88','symbol' => 'C3.5','taxonomy' => '3','name' => 'Ils créent une sauvegarde et vérifient si la restauration est réussie.','archive' => NULL), + array('id' => '404','fk_operational_competence' => '88','symbol' => 'C3.6','taxonomy' => '3','name' => 'Ils implémentent les autorisations d’accès selon le concept.','archive' => NULL), + array('id' => '405','fk_operational_competence' => '88','symbol' => 'C3.7','taxonomy' => '3','name' => 'Ils chiffrent les données selon le concept.','archive' => NULL), + array('id' => '406','fk_operational_competence' => '88','symbol' => 'C3.8','taxonomy' => '4','name' => 'Ils vérifient l’efficacité des mécanismes de sécurité et de protection installés.','archive' => NULL), + array('id' => '407','fk_operational_competence' => '89','symbol' => 'C4.1','taxonomy' => '3','name' => 'Ils importent les données dans un logiciel d’analyse approprié.','archive' => NULL), + array('id' => '408','fk_operational_competence' => '89','symbol' => 'C4.2','taxonomy' => '4','name' => 'Ils procèdent à une analyse exploratoire des données et identifient les éventuelles er- reurs de données.','archive' => NULL), + array('id' => '409','fk_operational_competence' => '89','symbol' => 'C4.3','taxonomy' => '4','name' => 'Ils comparent les méthodes de traitement et les formes de représentation établies et les évaluent.','archive' => NULL), + array('id' => '410','fk_operational_competence' => '89','symbol' => 'C4.4','taxonomy' => '3','name' => 'Ils choisissent des formes de représentation adaptées et les appliquent.','archive' => NULL), + array('id' => '411','fk_operational_competence' => '89','symbol' => 'C4.5','taxonomy' => '3','name' => 'Ils vérifient la validité des données traitées par échantillonnage.','archive' => NULL), + array('id' => '412','fk_operational_competence' => '89','symbol' => 'C4.6','taxonomy' => '3','name' => 'Ils mettent les données à disposition sous forme anonymisée.','archive' => NULL), + array('id' => '413','fk_operational_competence' => '90','symbol' => 'D1.1','taxonomy' => '4','name' => 'Ils recueillent les besoins des clients en matière de processus ICT sous forme d’exigences techniques en les formulant de façon compréhensible et sans tenir compte de la solution.','archive' => NULL), + array('id' => '414','fk_operational_competence' => '90','symbol' => 'D1.2','taxonomy' => '4','name' => 'Des besoins identifiés, ils déduisent une proposition de solution technique et la consi- gnent de façon claire.','archive' => NULL), + array('id' => '415','fk_operational_competence' => '90','symbol' => 'D1.3','taxonomy' => '4','name' => 'Ils automatisent les processus ICT définis au moyen de langages de script, de l’infrastructure en tant que code (IaC) et/ou de frameworks d’automatisation.','archive' => NULL), + array('id' => '416','fk_operational_competence' => '91','symbol' => 'D2.1','taxonomy' => '4','name' => 'Ils identifient les processus de livraison existants, les interfaces et les parties prenantes concernées.','archive' => NULL), + array('id' => '417','fk_operational_competence' => '91','symbol' => 'D2.2','taxonomy' => '4','name' => 'Ils déterminent la plateforme appropriée, les extensions et adaptations nécessaires en fonction des exigences définies pour la solution.','archive' => NULL), + array('id' => '418','fk_operational_competence' => '91','symbol' => 'D2.3','taxonomy' => '3','name' => 'Ils documentent l’entier du processus de livraison de façon claire et transparente.','archive' => NULL), + array('id' => '419','fk_operational_competence' => '91','symbol' => 'D2.4','taxonomy' => '3','name' => 'Ils présentent de façon claire et compréhensible le processus de livraison aux parties prenantes impliquées.','archive' => NULL), + array('id' => '420','fk_operational_competence' => '91','symbol' => 'D2.5','taxonomy' => '3','name' => 'Ils élaborent un concept de tests complet pour tester les fonctions et l’intégration de la livraison.','archive' => NULL), + array('id' => '421','fk_operational_competence' => '92','symbol' => 'D3.1','taxonomy' => '3','name' => 'Ils mettent à disposition la plateforme d’exécution définitive.','archive' => NULL), + array('id' => '422','fk_operational_competence' => '92','symbol' => 'D3.2','taxonomy' => '3','name' => 'Ils configurent la plateforme d’exécution conformément aux exigences planifiées.','archive' => NULL), + array('id' => '423','fk_operational_competence' => '92','symbol' => 'D3.3','taxonomy' => '3','name' => 'Ils documentent de façon compréhensible la configuration de la plateforme d’exécution.','archive' => NULL), + array('id' => '424','fk_operational_competence' => '92','symbol' => 'D3.4','taxonomy' => '3','name' => 'Ils vérifient si la plateforme mise au point peut être acceptée conformément aux exi- gences définies.','archive' => NULL), + array('id' => '425','fk_operational_competence' => '93','symbol' => 'D4.1','taxonomy' => '3','name' => 'Ils demandent les autorisations et les droits d’accès requis pour la mise en service.','archive' => NULL), + array('id' => '426','fk_operational_competence' => '93','symbol' => 'D4.2','taxonomy' => '4','name' => 'Ils coordonnent les adaptations à entreprendre sur les systèmes périphériques.','archive' => NULL), + array('id' => '427','fk_operational_competence' => '93','symbol' => 'D4.3','taxonomy' => '3','name' => 'Ils exécutent les scripts de déploiement pour la mise en service.','archive' => NULL), + array('id' => '428','fk_operational_competence' => '93','symbol' => 'D4.4','taxonomy' => '3','name' => 'Ils effectuent le déploiement logiciel.','archive' => NULL), + array('id' => '429','fk_operational_competence' => '93','symbol' => 'D4.5','taxonomy' => '4','name' => 'Ils coordonnent le déploiement matériel avec les parties prenantes concernées.','archive' => NULL), + array('id' => '430','fk_operational_competence' => '93','symbol' => 'D4.6','taxonomy' => '3','name' => 'Ils informent régulièrement le mandant sur l’état d’avancement de la mise en service.','archive' => NULL), + array('id' => '431','fk_operational_competence' => '93','symbol' => 'D4.7','taxonomy' => '4','name' => 'Ils testent les fonctions et la sécurité de la solution ICT mise en service.','archive' => NULL), + array('id' => '432','fk_operational_competence' => '94','symbol' => 'E1.1','taxonomy' => '5','name' => 'Ils élaborent une proposition de solution pour un réseau à l’attention des parties pre- nantes en tenant compte des spécificités de l’entreprise, des standards techniques et des prescriptions légales.','archive' => NULL), + array('id' => '433','fk_operational_competence' => '94','symbol' => 'E1.2','taxonomy' => '4','name' => 'Ils évaluent la probabilité de panne du nouveau réseau et planifient, si nécessaire, des redondances.','archive' => NULL), + array('id' => '434','fk_operational_competence' => '94','symbol' => 'E1.3','taxonomy' => '5','name' => 'Ils conçoivent l’infrastructure réseau (LAN) en tenant compte des conditions spatiales et d’autres consignes.','archive' => NULL), + array('id' => '435','fk_operational_competence' => '94','symbol' => 'E1.4','taxonomy' => '5','name' => 'Ils conçoivent des mesures de sécurité physiques et systémiques dans le réseau local.','archive' => NULL), + array('id' => '436','fk_operational_competence' => '94','symbol' => 'E1.5','taxonomy' => '3','name' => 'Ils documentent de façon systématique et exhaustive la structure du réseau physique et logique.','archive' => NULL), + array('id' => '437','fk_operational_competence' => '94','symbol' => 'E1.6','taxonomy' => '4','name' => 'Ils sélectionnent un fournisseur de services Internet approprié (ISP) en fonction des be- soins prédéfinis.','archive' => NULL), + array('id' => '438','fk_operational_competence' => '94','symbol' => 'E1.7','taxonomy' => '5','name' => 'Ils élaborent un concept de tests en vue de vérifier le fonctionnement, la performance et la sécurité du réseau.','archive' => NULL), + array('id' => '439','fk_operational_competence' => '95','symbol' => 'E2.1','taxonomy' => '4','name' => 'Ils définissent les composants du réseau appropriés en tenant compte des besoins et du budget alloué.','archive' => NULL), + array('id' => '440','fk_operational_competence' => '95','symbol' => 'E2.2','taxonomy' => '3','name' => 'Ils établissent une liste de matériel complète selon le processus de commande interne.','archive' => NULL), + array('id' => '441','fk_operational_competence' => '95','symbol' => 'E2.3','taxonomy' => '4','name' => 'A la réception de la commande, ils vérifient que l’intégralité des composants du réseau a bien été livrée.','archive' => NULL), + array('id' => '442','fk_operational_competence' => '95','symbol' => 'E2.4','taxonomy' => '5','name' => 'Ils établissent un concept de configuration clair et compréhensible.','archive' => NULL), + array('id' => '443','fk_operational_competence' => '95','symbol' => 'E2.5','taxonomy' => '3','name' => 'Ils procèdent à des préconfigurations et à des mises à jour des composants du réseau.','archive' => NULL), + array('id' => '444','fk_operational_competence' => '95','symbol' => 'E2.6','taxonomy' => '3','name' => 'Ils installent les composants du réseau chez le client et effectuent la configuration finale.','archive' => NULL), + array('id' => '445','fk_operational_competence' => '95','symbol' => 'E2.7','taxonomy' => '3','name' => 'Ils testent la capacité de fonctionnement des composants du réseau installés.','archive' => NULL), + array('id' => '446','fk_operational_competence' => '95','symbol' => 'E2.8','taxonomy' => '3','name' => 'Ils expliquent en mots simples le fonctionnement du réseau au client.','archive' => NULL), + array('id' => '447','fk_operational_competence' => '96','symbol' => 'E3.1','taxonomy' => '3','name' => 'Ils vérifient les composants du réseau par des contrôles visuels et définissent, si néces- saire, des mesures de maintenance.','archive' => NULL), + array('id' => '448','fk_operational_competence' => '96','symbol' => 'E3.2','taxonomy' => '4','name' => 'Ils contrôlent la journalisation (log) des différents composants du réseau.','archive' => NULL), + array('id' => '449','fk_operational_competence' => '96','symbol' => 'E3.3','taxonomy' => '4','name' => 'Ils prennent des mesures à court ou à long terme pour développer les composants du réseau.','archive' => NULL), + array('id' => '450','fk_operational_competence' => '96','symbol' => 'E3.4','taxonomy' => '3','name' => 'Ils effectuent les mises à jour et les mises à niveau des composants selon le concept d’exploitation établi et les instructions des fabricants.','archive' => NULL), + array('id' => '451','fk_operational_competence' => '96','symbol' => 'E3.5','taxonomy' => '3','name' => 'Ils documentent avec rigueur les travaux de maintenance effectués.','archive' => NULL), + array('id' => '452','fk_operational_competence' => '96','symbol' => 'E3.6','taxonomy' => '3','name' => 'Ils informent la partie prenante concernée du cycle de vie des appareils et des normes énergétiques et écologiques actuelles.','archive' => NULL), + array('id' => '453','fk_operational_competence' => '96','symbol' => 'E3.7','taxonomy' => '3','name' => 'Ils évaluent le moment où les appareils devront être remplacés.','archive' => NULL), + array('id' => '454','fk_operational_competence' => '97','symbol' => 'E4.1','taxonomy' => '4','name' => 'Ils analysent et évaluent les risques potentiels en matière de sécurité du réseau au moyen d’outils actuels et spécifiques à l’exploitation.','archive' => NULL), + array('id' => '455','fk_operational_competence' => '97','symbol' => 'E4.2','taxonomy' => '3','name' => 'Ils implémentent des outils et des composants sécuritaires.','archive' => NULL), + array('id' => '456','fk_operational_competence' => '97','symbol' => 'E4.3','taxonomy' => '3','name' => 'Ils testent les mesures de sécurité implémentées de façon systématique, selon le con- cept de tests.','archive' => NULL), + array('id' => '457','fk_operational_competence' => '97','symbol' => 'E4.4','taxonomy' => '3','name' => 'Ils documentent le fonctionnement des mesures de sécurité implémentées.','archive' => NULL), + array('id' => '458','fk_operational_competence' => '98','symbol' => 'E5.1','taxonomy' => '4','name' => 'Ils analysent les causes possibles de la capacité de performance limitée du réseau.','archive' => NULL), + array('id' => '459','fk_operational_competence' => '98','symbol' => 'E5.2','taxonomy' => '4','name' => 'Ils analysent la charge du réseau et définissent, en tenant compte des conséquences envisageables, des mesures d’optimisation appropriées.','archive' => NULL), + array('id' => '460','fk_operational_competence' => '98','symbol' => 'E5.3','taxonomy' => '3','name' => 'Ils documentent les mesures d’optimisation de façon claire et compréhensible.','archive' => NULL), + array('id' => '461','fk_operational_competence' => '98','symbol' => 'E5.4','taxonomy' => '3','name' => 'Ils adaptent la configuration des composants du réseau en fonction des mesures d’optimisation définies.','archive' => NULL), + array('id' => '462','fk_operational_competence' => '98','symbol' => 'E5.5','taxonomy' => '4','name' => 'Ils testent le fonctionnement du réseau.','archive' => NULL), + array('id' => '463','fk_operational_competence' => '99','symbol' => 'E6.1','taxonomy' => '4','name' => 'A l’aide des outils de monitorage donnés, ils surveillent les réseaux de façon continue et fiable.','archive' => NULL), + array('id' => '464','fk_operational_competence' => '99','symbol' => 'E6.2','taxonomy' => '4','name' => 'Ils vérifient la disponibilité et la capacité de fonctionnement des composants du réseau et la charge du réseau.','archive' => NULL), + array('id' => '465','fk_operational_competence' => '99','symbol' => 'E6.3','taxonomy' => '4','name' => 'Ils priorisent les messages et les alertes selon leur niveau d’urgence et définissent les mesures appropriées.','archive' => NULL), + array('id' => '466','fk_operational_competence' => '99','symbol' => 'E6.4','taxonomy' => '3','name' => 'Ils localisent et identifient les erreurs au niveau des composants du réseau en appliquant une procédure structurée. (C4) e6.5. Ils organisent la procédure de suppression des erreurs en équipe ou avec des partenaires externes.','archive' => NULL), + array('id' => '467','fk_operational_competence' => '100','symbol' => 'F1.1','taxonomy' => '5','name' => 'Ils élaborent à l’attention des parties prenantes des propositions de solution pour les systèmes de serveurs et leurs services en tenant compte des spécificités de l’entreprise, des normes/standards techniques, des prescriptions légales ainsi que de la protection informa- tique de base.','archive' => NULL), + array('id' => '468','fk_operational_competence' => '100','symbol' => 'F1.2','taxonomy' => '3','name' => 'Ils clarifient de façon compréhensible les questions des parties prenantes au sujet des propositions de solutions et soumettent les besoins de celles-ci à un examen critique.','archive' => NULL), + array('id' => '469','fk_operational_competence' => '100','symbol' => 'F1.3','taxonomy' => '3','name' => 'Ils consignent les variantes de solution avec toutes les exigences.','archive' => NULL), + array('id' => '470','fk_operational_competence' => '100','symbol' => 'F1.4','taxonomy' => '4','name' => 'Ils déterminent les plateformes appropriées et les paramètres de performance en se fondant sur des critères d’évaluation mesurables.','archive' => NULL), + array('id' => '471','fk_operational_competence' => '100','symbol' => 'F1.5','taxonomy' => '4','name' => 'Ils sélectionnent le matériel et les logiciels appropriés en adoptant une démarche pros- pective et en tenant compte des conditions cadres.','archive' => NULL), + array('id' => '472','fk_operational_competence' => '100','symbol' => 'F1.6','taxonomy' => '4','name' => 'Ils définissent les services appropriés avec les ressources nécessaires en tenant compte des dépendances déterminantes et des conséquences envisageables.','archive' => NULL), + array('id' => '473','fk_operational_competence' => '100','symbol' => 'F1.7','taxonomy' => '3','name' => 'Ils établissent un concept de tests afin de vérifier le fonctionnement, la performance ainsi que la sécurité des systèmes et services.','archive' => NULL), + array('id' => '474','fk_operational_competence' => '101','symbol' => 'F2.1','taxonomy' => '3','name' => 'Ils se procurent les composants et les ressources choisis pour le système de serveur selon les processus de l’entreprise.','archive' => NULL), + array('id' => '475','fk_operational_competence' => '101','symbol' => 'F2.2','taxonomy' => '3','name' => 'Ils installent les composants et les services selon la planification établie, les exigences internes ainsi que les meilleures pratiques et les configurent.','archive' => NULL), + array('id' => '476','fk_operational_competence' => '101','symbol' => 'F2.3','taxonomy' => '4','name' => 'Ils vérifient le fonctionnement du système de serveur au moyen de tests appropriés.','archive' => NULL), + array('id' => '477','fk_operational_competence' => '101','symbol' => 'F2.4','taxonomy' => '3','name' => 'Ils transposent le système de serveur dans l’environnement productif.','archive' => NULL), + array('id' => '478','fk_operational_competence' => '102','symbol' => 'F3.1','taxonomy' => '3','name' => 'Ils se procurent les ressources choisies pour le service du serveur selon les processus de l’entreprise.','archive' => NULL), + array('id' => '479','fk_operational_competence' => '102','symbol' => 'F3.2','taxonomy' => '3','name' => 'Ils installent et configurent le service du serveur conformément aux exigences, aux direc- tives, aux prescriptions légales et aux meilleures pratiques.','archive' => NULL), + array('id' => '480','fk_operational_competence' => '102','symbol' => 'F3.3','taxonomy' => '4','name' => 'Ils vérifient le fonctionnement du service du serveur au moyen de tests appropriés.','archive' => NULL), + array('id' => '481','fk_operational_competence' => '102','symbol' => 'F3.4','taxonomy' => '3','name' => 'Ils transposent le service du serveur dans l’environnement productif.','archive' => NULL), + array('id' => '482','fk_operational_competence' => '102','symbol' => 'F3.5','taxonomy' => '3','name' => 'Ils mettent à jour le manuel d’utilisation et le transmettent au mandant.','archive' => NULL), + array('id' => '483','fk_operational_competence' => '103','symbol' => 'F4.1','taxonomy' => '4','name' => 'Ils définissent les tâches de maintenance et leur cycle pour les systèmes de serveurs et leurs services.','archive' => NULL), + array('id' => '484','fk_operational_competence' => '103','symbol' => 'F4.2','taxonomy' => '3','name' => 'Ils exécutent les tâches de maintenance avec fiabilité et selon les consignes.','archive' => NULL), + array('id' => '485','fk_operational_competence' => '103','symbol' => 'F4.3','taxonomy' => '3','name' => 'Ils documentent de façon claire les tâches de maintenance exécutées.','archive' => NULL), + array('id' => '486','fk_operational_competence' => '103','symbol' => 'F4.4','taxonomy' => '3','name' => 'Ils testent les mises à jour et les installent dans l’environnement productif.','archive' => NULL), + array('id' => '487','fk_operational_competence' => '103','symbol' => 'F4.5','taxonomy' => '3','name' => 'Ils testent de façon systématique le fonctionnement, la performance et la sécurité des systèmes et des services.','archive' => NULL), + array('id' => '488','fk_operational_competence' => '103','symbol' => 'F4.6','taxonomy' => '3','name' => 'Ils documentent les interventions et les adaptations effectuées sur les systèmes et les services de façon compréhensible et respectent leur devoir de confidentialité.','archive' => NULL), + array('id' => '489','fk_operational_competence' => '104','symbol' => 'F5.1','taxonomy' => '3','name' => 'En concertation avec les parties prenantes, ils définissent les systèmes de serveurs et les services à surveiller.','archive' => NULL), + array('id' => '490','fk_operational_competence' => '104','symbol' => 'F5.2','taxonomy' => '4','name' => 'Ils déterminent les méthodes de surveillance appropriées.','archive' => NULL), + array('id' => '491','fk_operational_competence' => '104','symbol' => 'F5.3','taxonomy' => '4','name' => 'Ils définissent, en fonction de l’évaluation des risques, des valeurs limites sensées et les actions à entreprendre en cas de non-respect de ces valeurs.','archive' => NULL), + array('id' => '492','fk_operational_competence' => '104','symbol' => 'F5.4','taxonomy' => '4','name' => 'Ils vérifient à l’aide de tests périodiques le fonctionnement du système de surveillance et documentent les résultats.','archive' => NULL), + array('id' => '493','fk_operational_competence' => '104','symbol' => 'F5.5','taxonomy' => '4','name' => 'En cas de messages d’erreur ou d’alertes, ils engagent rapidement les mesures adé- quates.','archive' => NULL), + array('id' => '494','fk_operational_competence' => '105','symbol' => 'F6.1','taxonomy' => '5','name' => 'Ils élaborent en équipe un concept de sécurité pour les systèmes de serveurs et leurs services en appliquant les meilleures pratiques.','archive' => NULL), + array('id' => '495','fk_operational_competence' => '105','symbol' => 'F6.2','taxonomy' => '3','name' => 'Ils configurent de façon effective les éléments de sécurité.','archive' => NULL), + array('id' => '496','fk_operational_competence' => '105','symbol' => 'F6.3','taxonomy' => '4','name' => 'Ils testent à intervalles réguliers les systèmes de sécurité et documentent les résultats de façon compréhensible.','archive' => NULL), + array('id' => '497','fk_operational_competence' => '105','symbol' => 'F6.4','taxonomy' => '4','name' => 'Ils examinent les concepts de sécurité quant à leur actualité et, si nécessaire, les adap- tent en fonction des développements technologiques.','archive' => NULL), + array('id' => '498','fk_operational_competence' => '106','symbol' => 'F7.1','taxonomy' => '3','name' => 'Lors d’entretiens avec les parties prenantes, ils déterminent la perte maximale de don- nées admissible (RPO), la durée maximale d’interruption tolérable des systèmes de serveurs et de leurs services (RTO) ainsi que les durées de conservation des données et documentent leurs résultats.','archive' => NULL), + array('id' => '499','fk_operational_competence' => '106','symbol' => 'F7.2','taxonomy' => '4','name' => 'Ils vérifient si les systèmes et services actuels respectent les disponibilités définies.','archive' => NULL), + array('id' => '500','fk_operational_competence' => '106','symbol' => 'F7.3','taxonomy' => '5','name' => 'Ils conçoivent des solutions/mesures d’optimisation afin de garantir les disponibilités définies.','archive' => NULL), + array('id' => '501','fk_operational_competence' => '106','symbol' => 'F7.4','taxonomy' => '3','name' => 'Ils expliquent aux parties prenantes les solutions/mesures d’optimisation élaborées de manière compréhensible et claire en termes de rentabilité.','archive' => NULL), + array('id' => '502','fk_operational_competence' => '106','symbol' => 'F7.5','taxonomy' => '3','name' => 'Ils mettent en œuvre les solutions et/ou optimisations sur l’environnement concerné.','archive' => NULL), + array('id' => '503','fk_operational_competence' => '107','symbol' => 'F8.1','taxonomy' => '4','name' => 'En concertation avec les parties prenantes, ils définissent les données à sauvegarder ou à archiver.','archive' => NULL), + array('id' => '504','fk_operational_competence' => '107','symbol' => 'F8.2','taxonomy' => '4','name' => 'Ils établissent un concept complet de sauvegarde et d’archivage avec toutes les indica- tions déterminantes et dans le respect des prescriptions légales.','archive' => NULL), + array('id' => '505','fk_operational_competence' => '107','symbol' => 'F8.3','taxonomy' => '4','name' => 'Ils établissent un concept complet de reprise après sinistre avec toutes les indications déterminantes et dans le respect des prescriptions légales.','archive' => NULL), + array('id' => '506','fk_operational_competence' => '107','symbol' => 'F8.4','taxonomy' => '3','name' => 'Ils testent à intervalles réguliers la restaurabilité des données et des services et docu- mentent leurs résultats de façon compréhensible.','archive' => NULL), + array('id' => '507','fk_operational_competence' => '108','symbol' => 'A1.1','taxonomy' => '3','name' => 'Ils clarifient les objectifs du projet ICT et ses paramètres généraux tels que coûts, durée, qualité, périmètre, responsabilités et méthodologie.','archive' => NULL), + array('id' => '508','fk_operational_competence' => '108','symbol' => 'A1.2','taxonomy' => '5','name' => 'Ils appliquent diverses techniques d’audition et d’observation (p. ex. questions ouvertes, questions fermées, réunion, workshop, technique du shadowing, simulation de la solution à rechercher en opérant un saut dans le temps.','archive' => NULL), + array('id' => '509','fk_operational_competence' => '108','symbol' => 'A1.3','taxonomy' => '4','name' => 'Ils analysent le contexte du système, procèdent à une délimitation du système et du contexte et identifient les interfaces.','archive' => NULL), + array('id' => '510','fk_operational_competence' => '108','symbol' => 'A1.4','taxonomy' => '5','name' => 'Ils élaborent des solutions pour prévenir les éventuels conflits d’objectifs.','archive' => NULL), + array('id' => '511','fk_operational_competence' => '108','symbol' => 'A1.5','taxonomy' => '5','name' => 'Ils transposent la définition exprimée dans le langage naturel (des parties prenantes) dans une documentation modélisée contenant des objectifs et des exigences de projet clairs, non ambigus et référençables.','archive' => NULL), + array('id' => '512','fk_operational_competence' => '108','symbol' => 'A1.6','taxonomy' => '4','name' => 'Ils vérifient les objectifs et exigences de projet définis quant à leur mesurabilité, cohé- rence, exhaustivité, nécessité, exactitude et référençabilité.','archive' => NULL), + array('id' => '513','fk_operational_competence' => '108','symbol' => 'A1.7','taxonomy' => '3','name' => 'Ils définissent les caractéristiques de traitement des exigences et objectifs de projet individuels (p. ex. gestion des versions, identificateur de référençabilité, description, auteur, source, criticité, priorité).','archive' => NULL), + array('id' => '514','fk_operational_competence' => '109','symbol' => 'A2.1','taxonomy' => '4','name' => 'Ils analysent les paramètres et les conditions données par le mandant.','archive' => NULL), + array('id' => '515','fk_operational_competence' => '109','symbol' => 'A2.2','taxonomy' => '4','name' => 'Ils pèsent les avantages et inconvénients de divers modèles de procédure planifiés ou agiles (itératifs, incrémentaux) en relation avec le projet ICT et sélectionnent le modèle ap- proprié.','archive' => NULL), + array('id' => '516','fk_operational_competence' => '109','symbol' => 'A2.3','taxonomy' => '5','name' => 'Ils adaptent le modèle de procédure aux spécificités du projet (process tailoring).','archive' => NULL), + array('id' => '517','fk_operational_competence' => '110','symbol' => 'A3.1','taxonomy' => '4','name' => 'Ils cherchent de façon ciblée et systématique des informations de sources numériques et analogiques.','archive' => NULL), + array('id' => '518','fk_operational_competence' => '110','symbol' => 'A3.2','taxonomy' => '4','name' => 'Ils identifient les sources fiables.','archive' => NULL), + array('id' => '519','fk_operational_competence' => '110','symbol' => 'A3.3','taxonomy' => '4','name' => 'Ils comparent plusieurs variantes issues des résultats obtenus et les évaluent.','archive' => NULL), + array('id' => '520','fk_operational_competence' => '110','symbol' => 'A3.4','taxonomy' => '4','name' => 'Ils montrent le potentiel technique des variantes et leurs risques.','archive' => NULL), + array('id' => '521','fk_operational_competence' => '110','symbol' => 'A3.5','taxonomy' => '5','name' => 'Ils établissent une preuve de concept technique (PoC).','archive' => NULL), + array('id' => '522','fk_operational_competence' => '111','symbol' => 'A4.1','taxonomy' => '3','name' => 'Ils découpent une tâche globale en activités plus restreintes, plus facilement évaluables et attribuables à une ressource.','archive' => NULL), + array('id' => '523','fk_operational_competence' => '111','symbol' => 'A4.2','taxonomy' => '4','name' => 'Ils identifient les activités selon la charge et la durée de travail.','archive' => NULL), + array('id' => '524','fk_operational_competence' => '111','symbol' => 'A4.3','taxonomy' => '4','name' => 'Ils évaluent la charge, la durée et le degré de complexité des activités.','archive' => NULL), + array('id' => '525','fk_operational_competence' => '111','symbol' => 'A4.4','taxonomy' => '4','name' => 'Ils clarifient les dépendances séquentielles des activités et en définissent l’ordre chrono- logique.','archive' => NULL), + array('id' => '526','fk_operational_competence' => '111','symbol' => 'A4.5','taxonomy' => '3','name' => 'Ils regroupent et priorisent les activités nécessaires à la réalisation d’un objectif inter- médiaire sur la base de directives temporelles ou fonctionnelles.','archive' => NULL), + array('id' => '527','fk_operational_competence' => '112','symbol' => 'A5.1','taxonomy' => '4','name' => 'Ils identifient le groupe cible et ses besoins en informations sur une solution ICT selon un catalogue des exigences.','archive' => NULL), + array('id' => '528','fk_operational_competence' => '112','symbol' => 'A5.2','taxonomy' => '4','name' => 'Ils identifient les caractéristiques des solutions ICT qui sont propres au groupe cible.','archive' => NULL), + array('id' => '529','fk_operational_competence' => '112','symbol' => 'A5.3','taxonomy' => '5','name' => 'Ils regroupent les constats tirés de ces caractéristiques sous une forme visuelle adaptée au groupe cible et au problème (p. ex. tableau à feuilles, tableau blanc, programme de présen- tation, vidéoconférence.','archive' => NULL), + array('id' => '530','fk_operational_competence' => '112','symbol' => 'A5.4','taxonomy' => '5','name' => 'Ils présentent leurs propositions de solution de façon probante et convaincante (p. ex. storytelling).','archive' => NULL), + array('id' => '531','fk_operational_competence' => '113','symbol' => 'A6.1','taxonomy' => '3','name' => 'Ils établissent une évaluation sur l’état d’avancement des mandats assignés (personnel- lement ou au moyen d’un outil).','archive' => NULL), + array('id' => '532','fk_operational_competence' => '113','symbol' => 'A6.2','taxonomy' => '4','name' => 'Ils catégorisent et priorisent les évaluations recueillies.','archive' => NULL), + array('id' => '533','fk_operational_competence' => '113','symbol' => 'A6.3','taxonomy' => '5','name' => 'Ils consolident les évaluations et élaborent, si nécessaire, des propositions de mesures correctives.','archive' => NULL), + array('id' => '534','fk_operational_competence' => '113','symbol' => 'A6.4','taxonomy' => '3','name' => 'Ils consignent l’état d’avancement du projet et le présentent sous forme visuelle.','archive' => NULL), + array('id' => '535','fk_operational_competence' => '113','symbol' => 'A6.5','taxonomy' => '3','name' => 'Ils font état, sous forme résumée, des résultats relatifs à l’avancement du projet selon le modèle de procédure spécifique au projet.','archive' => NULL), + array('id' => '536','fk_operational_competence' => '114','symbol' => 'A7.1','taxonomy' => '3','name' => 'Ils identifient auprès du mandant les personnes à impliquer.','archive' => NULL), + array('id' => '537','fk_operational_competence' => '114','symbol' => 'A7.2','taxonomy' => '3','name' => 'Ils définissent conjointement avec le mandant les critères et la procédure de réception ainsi que la chronologie de la remise.','archive' => NULL), + array('id' => '538','fk_operational_competence' => '114','symbol' => 'A7.3','taxonomy' => '3','name' => 'Ils mettent à disposition la documentation convenue dans le mandat de projet.','archive' => NULL), + array('id' => '539','fk_operational_competence' => '114','symbol' => 'A7.4','taxonomy' => '3','name' => 'Ils planifient une formation/instruction.','archive' => NULL), + array('id' => '540','fk_operational_competence' => '114','symbol' => 'A7.5','taxonomy' => '5','name' => 'Ils préparent les supports de formation.','archive' => NULL), + array('id' => '541','fk_operational_competence' => '114','symbol' => 'A7.6','taxonomy' => '3','name' => 'Ils procèdent à la réception du projet par le mandant selon les critères définis et établis- sent un procès-verbal de réception.','archive' => NULL), + array('id' => '542','fk_operational_competence' => '114','symbol' => 'A7.7','taxonomy' => '3','name' => 'Ils archivent et sauvegardent leur travail selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '543','fk_operational_competence' => '115','symbol' => 'B1.1','taxonomy' => '3','name' => 'Ils équipent leur ordinateur d’un système d’exploitation.','archive' => NULL), + array('id' => '544','fk_operational_competence' => '115','symbol' => 'B1.2','taxonomy' => '3','name' => 'Ils relient leur ordinateur au réseau et testent la connexion.','archive' => NULL), + array('id' => '545','fk_operational_competence' => '115','symbol' => 'B1.3','taxonomy' => '3','name' => 'Ils configurent les mesures de sécurité requises (pare-feu, systèmes antivirus, etc.) selon les directives de l’entreprise.','archive' => NULL), + array('id' => '546','fk_operational_competence' => '115','symbol' => 'B1.4','taxonomy' => '3','name' => 'Ils installent les logiciels, les testent et effectuent, si nécessaire, les mises à jour.','archive' => NULL), + array('id' => '547','fk_operational_competence' => '115','symbol' => 'B1.5','taxonomy' => '3','name' => 'Ils relient leur ordinateur aux autres périphériques et testent leur fonctionnement.','archive' => NULL), + array('id' => '548','fk_operational_competence' => '115','symbol' => 'B1.6','taxonomy' => '3','name' => 'Ils installent et règlent leurs bureau et chaise conformément aux principes ergono- miques.','archive' => NULL), + array('id' => '549','fk_operational_competence' => '116','symbol' => 'B2.1','taxonomy' => '4','name' => 'Ils analysent des demandes d’assistance complexes de façon systématique (p. ex. à l’aide d’un catalogue de questions ou d’une check-list).','archive' => NULL), + array('id' => '550','fk_operational_competence' => '116','symbol' => 'B2.2','taxonomy' => '5','name' => 'Au moyen de méthodes adéquates ou dans le cadre de collaborations, ils élaborent des solutions.','archive' => NULL), + array('id' => '551','fk_operational_competence' => '116','symbol' => 'B2.3','taxonomy' => '3','name' => 'Ils documentent les solutions selon les directives spécifiques à l’entreprise.','archive' => NULL), + array('id' => '552','fk_operational_competence' => '116','symbol' => 'B2.4','taxonomy' => '3','name' => 'Ils préparent les solutions conformément au groupe cible (p. ex. pour l’assistance de 2e niveau) et les communiquent.','archive' => NULL), + array('id' => '553','fk_operational_competence' => '117','symbol' => 'B3.1','taxonomy' => '4','name' => 'Ils clarifient la situation en matière de sécurité auprès du mandant en posant des ques- tions ciblées sur les systèmes, réseaux, logiciels et données.','archive' => NULL), + array('id' => '554','fk_operational_competence' => '117','symbol' => 'B3.2','taxonomy' => '3','name' => 'Ils informent le mandant sur les dangers liés au réseau et au traitement des données sensibles.','archive' => NULL), + array('id' => '555','fk_operational_competence' => '117','symbol' => 'B3.3','taxonomy' => '5','name' => 'Ils proposent les mesures de protection nécessaires et recommandées pour les do- maines examinés.','archive' => NULL), + array('id' => '556','fk_operational_competence' => '117','symbol' => 'B3.4','taxonomy' => '4','name' => 'Ils forment les collaborateurs dans l’application des directives informatiques propres à l’entreprise. (C5) b4.1 Ils identifient les informations déterminantes sur les processus (intitulé, événement dé- clencheur, résultat, déclencheur, destinataire).','archive' => NULL), + array('id' => '557','fk_operational_competence' => '118','symbol' => 'B4.2','taxonomy' => '4','name' => 'Ils découpent, dans le cadre d’une analyse des tâches, les processus métier en étapes individuelles.','archive' => NULL), + array('id' => '558','fk_operational_competence' => '118','symbol' => 'B4.3','taxonomy' => '3','name' => 'Ils documentent le déroulement du processus et le représentent graphiquement selon les standards de description reconnus et usuels.','archive' => NULL), + array('id' => '559','fk_operational_competence' => '118','symbol' => 'B4.4','taxonomy' => '3','name' => 'Ils précisent le déroulement du processus avec des informations complémentaires telles que les outils requis, les exécutants et la description du résultat (output).','archive' => NULL), + array('id' => '560','fk_operational_competence' => '119','symbol' => 'C1.1','taxonomy' => '4','name' => 'Ils examinent les données issues de sources de données structurées ou non structurées avant de les classer selon le modèle 4V.','archive' => NULL), + array('id' => '561','fk_operational_competence' => '119','symbol' => 'C1.2','taxonomy' => '4','name' => 'Ils analysent les données quant à leur précision, à leur concision et à leur incohérence et les nettoient si nécessaire.','archive' => NULL), + array('id' => '562','fk_operational_competence' => '119','symbol' => 'C1.3','taxonomy' => '4','name' => 'Ils recueillent, à partir des formes d’analyse existantes (rapports), des indicateurs/points de repère pour la création du modèle.','archive' => NULL), + array('id' => '563','fk_operational_competence' => '119','symbol' => 'C1.4','taxonomy' => '3','name' => 'Ils définissent, selon le type de donnée, des cas de test appropriés pour l’exactitude des données.','archive' => NULL), + array('id' => '564','fk_operational_competence' => '119','symbol' => 'C1.5','taxonomy' => '4','name' => 'Ils définissent une structure adéquate pour les données nettoyées.','archive' => NULL), + array('id' => '565','fk_operational_competence' => '119','symbol' => 'C1.6','taxonomy' => '3','name' => 'Ils normalisent le modèle de données.','archive' => NULL), + array('id' => '566','fk_operational_competence' => '119','symbol' => 'C1.7','taxonomy' => '3','name' => 'Ils représentent le modèle sous une forme appropriée.','archive' => NULL), + array('id' => '567','fk_operational_competence' => '120','symbol' => 'C2.1','taxonomy' => '3','name' => 'Ils choisissent un dispositif de stockage de données numériques approprié (p. ex. objet- relationnel, relationnel, distribué/centralisé).','archive' => NULL), + array('id' => '568','fk_operational_competence' => '120','symbol' => 'C2.2','taxonomy' => '3','name' => 'Ils implémentent le modèle de données normalisé pour le stockage en tenant compte de l’intégrité référentielle.','archive' => NULL), + array('id' => '569','fk_operational_competence' => '120','symbol' => 'C2.3','taxonomy' => '5','name' => 'Ils planifient les tests de fonction et de performance et préparent les données de test requises.','archive' => NULL), + array('id' => '570','fk_operational_competence' => '120','symbol' => 'C2.4','taxonomy' => '3','name' => 'Ils exécutent les tests de fonction et de performance.','archive' => NULL), + array('id' => '571','fk_operational_competence' => '120','symbol' => 'C2.5','taxonomy' => '4','name' => 'Ils évaluent les tests de fonction et de performance.','archive' => NULL), + array('id' => '572','fk_operational_competence' => '120','symbol' => 'C2.6','taxonomy' => '5','name' => 'Ils planifient, à partir de divers systèmes source, les migrations de données vers un sys- tème cible et les exécutent.','archive' => NULL), + array('id' => '573','fk_operational_competence' => '120','symbol' => 'C2.7','taxonomy' => '4','name' => 'Ils vérifient l’exhaustivité, l’intégrité et l’exactitude des données migrées vers le système cible.','archive' => NULL), + array('id' => '574','fk_operational_competence' => '121','symbol' => 'C3.1','taxonomy' => '4','name' => 'Ils identifient les données sensibles et les catégorisent.','archive' => NULL), + array('id' => '575','fk_operational_competence' => '121','symbol' => 'C3.2','taxonomy' => '4','name' => 'Ils clarifient les mécanismes de protection nécessaires selon la sensibilité des données et les qualifient.','archive' => NULL), + array('id' => '576','fk_operational_competence' => '121','symbol' => 'C3.4','taxonomy' => '3','name' => 'Ils élaborent un concept de sécurité des données et des rôles conformément au mandat.','archive' => NULL), + array('id' => '577','fk_operational_competence' => '121','symbol' => 'C3.5','taxonomy' => '3','name' => 'Ils créent une sauvegarde et vérifient si la restauration est réussie.','archive' => NULL), + array('id' => '578','fk_operational_competence' => '121','symbol' => 'C3.6','taxonomy' => '3','name' => 'Ils implémentent les autorisations d’accès selon le concept.','archive' => NULL), + array('id' => '579','fk_operational_competence' => '121','symbol' => 'C3.7','taxonomy' => '3','name' => 'Ils chiffrent les données selon le concept.','archive' => NULL), + array('id' => '580','fk_operational_competence' => '121','symbol' => 'C3.8','taxonomy' => '4','name' => 'Ils vérifient l’efficacité des mécanismes de sécurité et de protection installés.','archive' => NULL), + array('id' => '581','fk_operational_competence' => '122','symbol' => 'C4.1','taxonomy' => '3','name' => 'Ils importent les données dans un logiciel d’analyse approprié.','archive' => NULL), + array('id' => '582','fk_operational_competence' => '122','symbol' => 'C4.2','taxonomy' => '4','name' => 'Ils procèdent à une analyse exploratoire des données et identifient les éventuelles er- reurs de données.','archive' => NULL), + array('id' => '583','fk_operational_competence' => '122','symbol' => 'C4.3','taxonomy' => '4','name' => 'Ils comparent les méthodes de traitement et les formes de représentation établies et les évaluent.','archive' => NULL), + array('id' => '584','fk_operational_competence' => '122','symbol' => 'C4.4','taxonomy' => '3','name' => 'Ils choisissent des formes de représentation adaptées et les appliquent.','archive' => NULL), + array('id' => '585','fk_operational_competence' => '122','symbol' => 'C4.5','taxonomy' => '3','name' => 'Ils vérifient la validité des données traitées par échantillonnage.','archive' => NULL), + array('id' => '586','fk_operational_competence' => '122','symbol' => 'C4.6','taxonomy' => '3','name' => 'Ils mettent les données à disposition sous forme anonymisée.','archive' => NULL), + array('id' => '587','fk_operational_competence' => '123','symbol' => 'G1.1','taxonomy' => '3','name' => 'Ils consignent les besoins du client sous forme d’exigences techniques et spécifiques à son activité professionnelle.','archive' => NULL), + array('id' => '588','fk_operational_competence' => '123','symbol' => 'G1.2','taxonomy' => '5','name' => 'Ils développent en équipe des modèles utilisateur sur la base de personas.','archive' => NULL), + array('id' => '589','fk_operational_competence' => '123','symbol' => 'G1.3','taxonomy' => '4','name' => 'Ils vérifient les besoins techniques et spécifiques à l’activité professionnelle quant à leur cohérence, exhaustivité et mesurabilité.','archive' => NULL), + array('id' => '590','fk_operational_competence' => '123','symbol' => 'G1.4','taxonomy' => '4','name' => 'Ils dressent le catalogue des besoins selon des critères spécifiques à l’activité ou au pro- jet et les consignent.','archive' => NULL), + array('id' => '591','fk_operational_competence' => '123','symbol' => 'G1.5','taxonomy' => '3','name' => 'Ils attribuent une dénomination explicite aux besoins.','archive' => NULL), + array('id' => '592','fk_operational_competence' => '123','symbol' => 'G1.6','taxonomy' => '4','name' => 'Ils évaluent en équipe l’investissement en temps, la complexité, le périmètre et la priori- sation des lots de travail.','archive' => NULL), + array('id' => '593','fk_operational_competence' => '123','symbol' => 'G1.7','taxonomy' => '3','name' => 'Ils vérifient la validité des besoins avec les parties prenantes concernées.','archive' => NULL), + array('id' => '594','fk_operational_competence' => '123','symbol' => 'G1.8','taxonomy' => '3','name' => 'Ils documentent en continu les besoins techniques et spécifiques à l’activité profession- nelle.','archive' => NULL), + array('id' => '595','fk_operational_competence' => '124','symbol' => 'G2.1','taxonomy' => '5','name' => 'Ils développent des maquettes ou des modèles d’interfaces en utilisant des outils gra- phiques appropriés et en tenant compte des directives et des consignes conceptuelles.','archive' => NULL), + array('id' => '596','fk_operational_competence' => '124','symbol' => 'G2.2','taxonomy' => '4','name' => 'Ils identifient les éléments problématiques des interfaces utilisateur.','archive' => NULL), + array('id' => '597','fk_operational_competence' => '124','symbol' => 'G2.3','taxonomy' => '4','name' => 'Ils développent des prototypes des interfaces utilisateur.','archive' => NULL), + array('id' => '598','fk_operational_competence' => '124','symbol' => 'G2.4','taxonomy' => '4','name' => 'Ils vérifient la faisabilité des interfaces utilisateur en tenant compte des aspects déter- minants.','archive' => NULL), + array('id' => '599','fk_operational_competence' => '124','symbol' => 'G2.5','taxonomy' => '3','name' => 'Ils discutent des modèles ou prototypes avec les parties prenantes et proposent des solutions alternatives pour les éléments non réalisables sur le plan technique.','archive' => NULL), + array('id' => '600','fk_operational_competence' => '124','symbol' => 'G2.6','taxonomy' => '5','name' => 'Ils développent des interfaces utilisateur fonctionnelles sur la base des prototypes.','archive' => NULL), + array('id' => '601','fk_operational_competence' => '125','symbol' => 'G3.1','taxonomy' => '4','name' => 'Ils clarifient les questions de sécurité relatives à l’environnement système de façon prospective et en déduisent les risques potentiels.','archive' => NULL), + array('id' => '602','fk_operational_competence' => '125','symbol' => 'G3.2','taxonomy' => '3','name' => 'Ils se procurent en équipe ou au sein de la communauté les informations pertinentes relatives à la sécurité (p. ex. OWASP).','archive' => NULL), + array('id' => '603','fk_operational_competence' => '125','symbol' => 'G3.3','taxonomy' => '3','name' => 'Ils consignent de façon compréhensible les risques de sécurité identifiés et les mesures en résultant.','archive' => NULL), + array('id' => '604','fk_operational_competence' => '125','symbol' => 'G3.4','taxonomy' => '3','name' => 'Ils expliquent au sein de leur équipe les mesures prises pour sécuriser les applications et les interfaces.','archive' => NULL), + array('id' => '605','fk_operational_competence' => '125','symbol' => 'G3.5','taxonomy' => '3','name' => 'Ils adaptent le catalogue des exigences en fonction de leurs constats et en discutent avec la partie prenante.','archive' => NULL), + array('id' => '606','fk_operational_competence' => '126','symbol' => 'G4.1','taxonomy' => '5','name' => 'Ils présentent, à l’aide d’ébauches et de descriptions, les variantes fondamentales en regard de leur implémentation','archive' => NULL), + array('id' => '607','fk_operational_competence' => '126','symbol' => 'G4.2','taxonomy' => '4','name' => 'En collaboration avec les parties prenantes, ils établissent une analyse d’utilité compré- hensible au moyen de critères décisionnels pertinents et évaluables.','archive' => NULL), + array('id' => '608','fk_operational_competence' => '126','symbol' => 'G4.3','taxonomy' => '5','name' => 'Ils conseillent la partie prenante dans sa prise de décision quant à la solution optimale, en tenant également compte des aspects éthiques et légaux.','archive' => NULL), + array('id' => '609','fk_operational_competence' => '126','symbol' => 'G4.4','taxonomy' => '5','name' => 'Ils élaborent un concept de réalisation technique et spécialisé au moyen des outils ap- propriés.','archive' => NULL), + array('id' => '610','fk_operational_competence' => '126','symbol' => 'G4.5','taxonomy' => '4','name' => 'Ils effectuent une analyse de faisabilité pour la variante choisie.','archive' => NULL), + array('id' => '611','fk_operational_competence' => '127','symbol' => 'G5.1','taxonomy' => '3','name' => 'Ils mettent en place un environnement de développement et d’exécution approprié sur la base du concept de réalisation préétabli et des directives de l’entreprise.','archive' => NULL), + array('id' => '612','fk_operational_competence' => '127','symbol' => 'G5.2','taxonomy' => '3','name' => 'Ils programment de façon efficiente et structurée un back-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce.','archive' => NULL), + array('id' => '613','fk_operational_competence' => '127','symbol' => 'G5.3','taxonomy' => '3','name' => 'Ils programment de façon efficiente et structurée un front-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce.','archive' => NULL), + array('id' => '614','fk_operational_competence' => '127','symbol' => 'G5.4','taxonomy' => '4','name' => 'Ils vérifient les résultats intermédiaires au regard des exigences (fonctionnel, non fonc- tionnel, sécurité) et procèdent en continu à des corrections.','archive' => NULL), + array('id' => '615','fk_operational_competence' => '127','symbol' => 'G5.5','taxonomy' => '3','name' => 'Ils vérifient si les conventions de code sont bien respectées.','archive' => NULL), + array('id' => '616','fk_operational_competence' => '127','symbol' => 'G5.6','taxonomy' => '3','name' => 'Ils déposent les modifications et extensions de l’implémentation de façon claire et fiable dans un système de gestion des logiciels.','archive' => NULL), + array('id' => '617','fk_operational_competence' => '127','symbol' => 'G5.7','taxonomy' => '3','name' => 'Ils adaptent le concept de réalisation de façon claire et intelligible.','archive' => NULL), + array('id' => '618','fk_operational_competence' => '128','symbol' => 'G6.1','taxonomy' => '3','name' => 'Ils décrivent l’environnement de test d’une application avec toutes les indications perti- nentes.','archive' => NULL), + array('id' => '619','fk_operational_competence' => '128','symbol' => 'G6.2','taxonomy' => '4','name' => 'Ils définissent les moyens de test sur la base des types de test sélectionnés.','archive' => NULL), + array('id' => '620','fk_operational_competence' => '128','symbol' => 'G6.3','taxonomy' => '4','name' => 'Ils décrivent de façon compréhensible des cas de test reproductibles en relation avec les cas d’utilisation et les exigences, et définissent les résultats escomptés.','archive' => NULL), + array('id' => '621','fk_operational_competence' => '128','symbol' => 'G6.4','taxonomy' => '3','name' => 'Ils mettent en place un environnement de test approprié selon le concept de tests.','archive' => NULL), + array('id' => '622','fk_operational_competence' => '128','symbol' => 'G6.5','taxonomy' => '4','name' => 'Ils implémentent les cas de test automatisables en fonction des moyens de test définis.','archive' => NULL), + array('id' => '623','fk_operational_competence' => '128','symbol' => 'G6.6','taxonomy' => '3','name' => 'Ils exécutent les cas de test intégralement et rigoureusement.','archive' => NULL), + array('id' => '624','fk_operational_competence' => '128','symbol' => 'G6.7','taxonomy' => '4','name' => 'Ils évaluent le déroulement du test et consignent les résultats de façon compréhensible dans un rapport.','archive' => NULL), + array('id' => '625','fk_operational_competence' => '128','symbol' => 'G6.8','taxonomy' => '4','name' => 'Ils définissent des mesures correctives et les exécutent.','archive' => NULL), + array('id' => '626','fk_operational_competence' => '128','symbol' => 'G6.9','taxonomy' => '4','name' => 'Ils vérifient l’implémentation en fonction du concept de sécurité défini et prennent les mesures correctives appropriées.','archive' => NULL), + array('id' => '627','fk_operational_competence' => '129','symbol' => 'H1.1','taxonomy' => '4','name' => 'Ils identifient les dépendances entre les divers composants.','archive' => NULL), + array('id' => '628','fk_operational_competence' => '129','symbol' => 'H1.2','taxonomy' => '4','name' => 'Ils déterminent la plateforme appropriée au fonctionnement de l’application.','archive' => NULL), + array('id' => '629','fk_operational_competence' => '129','symbol' => 'H1.3','taxonomy' => '4','name' => 'Ils définissent le modèle de couches en fonction des conditions cadres de la partie pre- nante.','archive' => NULL), + array('id' => '630','fk_operational_competence' => '129','symbol' => 'H1.4','taxonomy' => '4','name' => 'Ils identifient les exigences de sécurité devant être remplies par la plateforme et choisis- sent les services appropriés.','archive' => NULL), + array('id' => '631','fk_operational_competence' => '129','symbol' => 'H1.5','taxonomy' => '3','name' => 'Ils sélectionnent les ressources requises en fonction des recommandations de l’opérateur de la plateforme.','archive' => NULL), + array('id' => '632','fk_operational_competence' => '129','symbol' => 'H1.6','taxonomy' => '4','name' => 'Ils vérifient la cohérence de leur choix en collaboration avec leur équipe, procèdent à d’éventuelles adaptations et consignent les résultats.','archive' => NULL), + array('id' => '633','fk_operational_competence' => '130','symbol' => 'H2.1','taxonomy' => '4','name' => 'Ils analysent les dépendances entre les composants en regard du processus de livraison.','archive' => NULL), + array('id' => '634','fk_operational_competence' => '130','symbol' => 'H2.2','taxonomy' => '4','name' => 'Ils déterminent des pratiques d’intégration appropriées et les consignent.','archive' => NULL), + array('id' => '635','fk_operational_competence' => '130','symbol' => 'H2.3','taxonomy' => '4','name' => 'Ils définissent les pratiques de déploiement adéquates et les consignent.','archive' => NULL), + array('id' => '636','fk_operational_competence' => '130','symbol' => 'H2.4','taxonomy' => '4','name' => 'Ils déterminent la gestion des artefacts appropriée et la consignent.','archive' => NULL), + array('id' => '637','fk_operational_competence' => '131','symbol' => 'H3.1','taxonomy' => '3','name' => 'Ils installent les services de livraison.','archive' => NULL), + array('id' => '638','fk_operational_competence' => '131','symbol' => 'H3.2','taxonomy' => '3','name' => 'Ils écrivent les scripts d’automatisation et définissent les variables d’environnement au moyen des méthodes et des outils appropriés.','archive' => NULL), + array('id' => '639','fk_operational_competence' => '131','symbol' => 'H3.3','taxonomy' => '3','name' => 'Ils mettent à disposition les composants pour la livraison.','archive' => NULL), + array('id' => '640','fk_operational_competence' => '131','symbol' => 'H3.4','taxonomy' => '3','name' => 'Ils empaquètent l’application.','archive' => NULL), + array('id' => '641','fk_operational_competence' => '131','symbol' => 'H3.5','taxonomy' => '3','name' => 'Ils administrent et versionnent les artefacts.','archive' => NULL), + array('id' => '642','fk_operational_competence' => '131','symbol' => 'H3.6','taxonomy' => '4','name' => 'Ils vérifient le processus de livraison de l’application selon la procédure établie.','archive' => NULL), + array('id' => '643','fk_operational_competence' => '131','symbol' => 'H3.7','taxonomy' => '4','name' => 'Ils vérifient la capacité de fonctionnement/ l’interaction des applications au moyen d’un concept de tests.','archive' => NULL), + array('id' => '644','fk_operational_competence' => '132','symbol' => 'H4.1','taxonomy' => '3','name' => 'Ils définissent et configurent les outils pour le monitorage d’une application.','archive' => NULL), + array('id' => '645','fk_operational_competence' => '132','symbol' => 'H4.2','taxonomy' => '3','name' => 'Ils effectuent le monitorage à intervalles réguliers de façon fiable et rigoureuse.','archive' => NULL), + array('id' => '646','fk_operational_competence' => '132','symbol' => 'H4.3','taxonomy' => '4','name' => 'Ils analysent les problèmes en adoptant une procédure structurée.','archive' => NULL), + array('id' => '647','fk_operational_competence' => '132','symbol' => 'H4.4','taxonomy' => '4','name' => 'Ils vérifient l’actualité et les paramètres de sécurité des applications et des interfaces en consultant régulièrement les informations des fabricants.','archive' => NULL), + array('id' => '648','fk_operational_competence' => '132','symbol' => 'H4.5','taxonomy' => '5','name' => 'Ils définissent une procédure ciblée en vue de résoudre les problèmes et en discutent avec leur équipe et/ou la partie prenante concernée.','archive' => NULL), + array('id' => '649','fk_operational_competence' => '132','symbol' => 'H4.6','taxonomy' => '3','name' => 'Ils mettent en œuvre les mesures convenues et les consignent de façon claire et compréhensible.','archive' => NULL), + array('id' => '650','fk_operational_competence' => '133','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '651','fk_operational_competence' => '133','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires','archive' => NULL), + array('id' => '652','fk_operational_competence' => '133','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '653','fk_operational_competence' => '133','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '654','fk_operational_competence' => '133','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '655','fk_operational_competence' => '133','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '656','fk_operational_competence' => '133','symbol' => 'A.1.7','taxonomy' => '6','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '657','fk_operational_competence' => '134','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)','archive' => NULL), + array('id' => '658','fk_operational_competence' => '134','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur','archive' => NULL), + array('id' => '659','fk_operational_competence' => '134','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Acquérir le matériel, les logiciels et les licences','archive' => NULL), + array('id' => '660','fk_operational_competence' => '134','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données','archive' => NULL), + array('id' => '661','fk_operational_competence' => '134','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation','archive' => NULL), + array('id' => '662','fk_operational_competence' => '135','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '663','fk_operational_competence' => '135','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur','archive' => NULL), + array('id' => '664','fk_operational_competence' => '135','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)','archive' => NULL), + array('id' => '665','fk_operational_competence' => '135','symbol' => 'A.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '666','fk_operational_competence' => '135','symbol' => 'A.3.5','taxonomy' => '3','name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils','archive' => NULL), + array('id' => '667','fk_operational_competence' => '136','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '668','fk_operational_competence' => '136','symbol' => 'B.1.2','taxonomy' => '3','name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '669','fk_operational_competence' => '136','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '670','fk_operational_competence' => '137','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '671','fk_operational_competence' => '137','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '672','fk_operational_competence' => '137','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '673','fk_operational_competence' => '137','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '674','fk_operational_competence' => '138','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '675','fk_operational_competence' => '138','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '676','fk_operational_competence' => '138','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '677','fk_operational_competence' => '138','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '678','fk_operational_competence' => '139','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '679','fk_operational_competence' => '139','symbol' => 'C.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '680','fk_operational_competence' => '139','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '681','fk_operational_competence' => '139','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '682','fk_operational_competence' => '139','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '683','fk_operational_competence' => '140','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '684','fk_operational_competence' => '140','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '685','fk_operational_competence' => '140','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '686','fk_operational_competence' => '140','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '687','fk_operational_competence' => '140','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes','archive' => NULL), + array('id' => '688','fk_operational_competence' => '141','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '689','fk_operational_competence' => '141','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '690','fk_operational_competence' => '141','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '691','fk_operational_competence' => '141','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '692','fk_operational_competence' => '142','symbol' => 'C.4.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '693','fk_operational_competence' => '142','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '694','fk_operational_competence' => '142','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '695','fk_operational_competence' => '142','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '696','fk_operational_competence' => '143','symbol' => 'D.1.1','taxonomy' => '4','name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils','archive' => NULL), + array('id' => '697','fk_operational_competence' => '143','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)','archive' => NULL), + array('id' => '698','fk_operational_competence' => '143','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '699','fk_operational_competence' => '143','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Elaborer la documentation pour les utilisateurs','archive' => NULL), + array('id' => '700','fk_operational_competence' => '144','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème','archive' => NULL), + array('id' => '701','fk_operational_competence' => '144','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques','archive' => NULL), + array('id' => '702','fk_operational_competence' => '144','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils','archive' => NULL), + array('id' => '703','fk_operational_competence' => '144','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '704','fk_operational_competence' => '145','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '705','fk_operational_competence' => '145','symbol' => 'E.1.2','taxonomy' => '4','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '706','fk_operational_competence' => '145','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '707','fk_operational_competence' => '145','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '708','fk_operational_competence' => '145','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '709','fk_operational_competence' => '145','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '710','fk_operational_competence' => '145','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '711','fk_operational_competence' => '146','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc','archive' => NULL), + array('id' => '712','fk_operational_competence' => '146','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '713','fk_operational_competence' => '146','symbol' => 'E.2.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue','archive' => NULL), + array('id' => '714','fk_operational_competence' => '146','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '715','fk_operational_competence' => '146','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns','archive' => NULL), + array('id' => '716','fk_operational_competence' => '146','symbol' => 'E.2.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '717','fk_operational_competence' => '146','symbol' => 'E.2.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '718','fk_operational_competence' => '146','symbol' => 'E.2.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '719','fk_operational_competence' => '147','symbol' => 'E.3.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '720','fk_operational_competence' => '147','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '721','fk_operational_competence' => '147','symbol' => 'E.3.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '722','fk_operational_competence' => '147','symbol' => 'E.3.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '723','fk_operational_competence' => '147','symbol' => 'E.3.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '724','fk_operational_competence' => '147','symbol' => 'E.3.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '725','fk_operational_competence' => '148','symbol' => 'E.4.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '726','fk_operational_competence' => '148','symbol' => 'E.4.2','taxonomy' => '3','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '727','fk_operational_competence' => '148','symbol' => 'E.4.3','taxonomy' => '3','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '728','fk_operational_competence' => '148','symbol' => 'E.4.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '729','fk_operational_competence' => '148','symbol' => 'E.4.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '730','fk_operational_competence' => '149','symbol' => 'E.5.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '731','fk_operational_competence' => '149','symbol' => 'E.5.2','taxonomy' => '3','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '732','fk_operational_competence' => '149','symbol' => 'E.5.3','taxonomy' => '3','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '733','fk_operational_competence' => '149','symbol' => 'E.5.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '734','fk_operational_competence' => '150','symbol' => 'F.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '735','fk_operational_competence' => '150','symbol' => 'F.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '736','fk_operational_competence' => '150','symbol' => 'F.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '737','fk_operational_competence' => '150','symbol' => 'F.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '738','fk_operational_competence' => '150','symbol' => 'F.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '739','fk_operational_competence' => '150','symbol' => 'F.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '740','fk_operational_competence' => '150','symbol' => 'F.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '741','fk_operational_competence' => '151','symbol' => 'F.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '742','fk_operational_competence' => '151','symbol' => 'F.2.2','taxonomy' => '3','name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '743','fk_operational_competence' => '151','symbol' => 'F.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '744','fk_operational_competence' => '151','symbol' => 'F.2.4','taxonomy' => '3','name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '745','fk_operational_competence' => '151','symbol' => 'F.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '746','fk_operational_competence' => '152','symbol' => 'F.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '747','fk_operational_competence' => '152','symbol' => 'F.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL) + ); + foreach ($objectives as $objective) + $this->db->table('objective')->insert($objective); + + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addObjectiveDatas.php b/orif/plafor/Database/Seeds/addObjectiveDatas.php index 315b37c8..ef95e0d7 100644 --- a/orif/plafor/Database/Seeds/addObjectiveDatas.php +++ b/orif/plafor/Database/Seeds/addObjectiveDatas.php @@ -11,2660 +11,339 @@ class addObjectiveDatas extends Seeder public function run() { //objectives// - $objectives=[ - array ( - 'id' => '1', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences', - 'archive' => '2021-06-14 12:41:06', - ), - array ( - 'id' => '2', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.4', - 'taxonomy' => '4', - 'name' => 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_operational_competence' => '1', - 'symbol' => 'A.1.5', - 'taxonomy' => '4', - 'name' => 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_operational_competence' => '2', - 'symbol' => 'A.2.3', - 'taxonomy' => '4', - 'name' => 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.2', - 'taxonomy' => '3', - 'name' => 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_operational_competence' => '3', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Obtenir la confirmation et la distribution du mandat du client', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.1', - 'taxonomy' => '5', - 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.2', - 'taxonomy' => '5', - 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.5', - 'taxonomy' => '3', - 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.6', - 'taxonomy' => '4', - 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_operational_competence' => '4', - 'symbol' => 'B.1.7', - 'taxonomy' => '4', - 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.1', - 'taxonomy' => '4', - 'name' => 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.2', - 'taxonomy' => '4', - 'name' => 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_operational_competence' => '5', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions', - 'archive' => NULL, - ), - array ( - 'id' => '23', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.1', - 'taxonomy' => '4', - 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ', - 'archive' => NULL, - ), - array ( - 'id' => '24', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluation des modes de déroulement et des applications appropriées', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.3', - 'taxonomy' => '4', - 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Utiliser des standards et processus de développement', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.6', - 'taxonomy' => '3', - 'name' => 'Respecter la convention des codes', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.7', - 'taxonomy' => '3', - 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '30', - 'fk_operational_competence' => '6', - 'symbol' => 'B.3.8', - 'taxonomy' => '3', - 'name' => 'Tester l’application et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '31', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.1', - 'taxonomy' => '4', - 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', - 'archive' => NULL, - ), - array ( - 'id' => '32', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.2', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', - 'archive' => NULL, - ), - array ( - 'id' => '33', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.3', - 'taxonomy' => '3', - 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', - 'archive' => NULL, - ), - array ( - 'id' => '34', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.4', - 'taxonomy' => '3', - 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', - 'archive' => NULL, - ), - array ( - 'id' => '35', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.5', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', - 'archive' => NULL, - ), - array ( - 'id' => '36', - 'fk_operational_competence' => '7', - 'symbol' => 'B.4.6', - 'taxonomy' => '3', - 'name' => 'Tester l’application de manière exhaustive et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '37', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.1', - 'taxonomy' => '3', - 'name' => 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout', - 'archive' => NULL, - ), - array ( - 'id' => '38', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.2', - 'taxonomy' => '3', - 'name' => 'Respecter les standards', - 'archive' => NULL, - ), - array ( - 'id' => '39', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.3', - 'taxonomy' => '4', - 'name' => 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation', - 'archive' => NULL, - ), - array ( - 'id' => '40', - 'fk_operational_competence' => '8', - 'symbol' => 'B.5.4', - 'taxonomy' => '4', - 'name' => 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité', - 'archive' => NULL, - ), - array ( - 'id' => '41', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.1', - 'taxonomy' => '4', - 'name' => 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin', - 'archive' => NULL, - ), - array ( - 'id' => '42', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.2', - 'taxonomy' => '3', - 'name' => 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '43', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.3', - 'taxonomy' => '3', - 'name' => 'Préparer la remise de la production', - 'archive' => NULL, - ), - array ( - 'id' => '44', - 'fk_operational_competence' => '9', - 'symbol' => 'B.6.4', - 'taxonomy' => '3', - 'name' => 'Organiser en temps voulu l’instruction et l’information des utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '45', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.1', - 'taxonomy' => '4', - 'name' => 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)', - 'archive' => NULL, - ), - array ( - 'id' => '46', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.2', - 'taxonomy' => '4', - 'name' => 'Décrire des entités et déterminer des types de données', - 'archive' => NULL, - ), - array ( - 'id' => '47', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.3', - 'taxonomy' => '4', - 'name' => 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '48', - 'fk_operational_competence' => '10', - 'symbol' => 'C.1.4', - 'taxonomy' => '4', - 'name' => 'Formuler des données adéquates de test (tenir compte des conditions limites)', - 'archive' => NULL, - ), - array ( - 'id' => '49', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.1', - 'taxonomy' => '4', - 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', - 'archive' => NULL, - ), - array ( - 'id' => '50', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.2', - 'taxonomy' => '4', - 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', - 'archive' => NULL, - ), - array ( - 'id' => '51', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.3', - 'taxonomy' => '4', - 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '52', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', - 'archive' => NULL, - ), - array ( - 'id' => '53', - 'fk_operational_competence' => '11', - 'symbol' => 'C.2.5', - 'taxonomy' => '4', - 'name' => 'Planifier et exécuter la migration de données', - 'archive' => NULL, - ), - array ( - 'id' => '54', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.1', - 'taxonomy' => '3', - 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '55', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', - 'archive' => NULL, - ), - array ( - 'id' => '56', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.3', - 'taxonomy' => '4', - 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', - 'archive' => NULL, - ), - array ( - 'id' => '57', - 'fk_operational_competence' => '12', - 'symbol' => 'C.3.4', - 'taxonomy' => '4', - 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '58', - 'fk_operational_competence' => '13', - 'symbol' => 'D.1.1', - 'taxonomy' => '3', - 'name' => 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises', - 'archive' => NULL, - ), - array ( - 'id' => '59', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.1', - 'taxonomy' => '4', - 'name' => 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail', - 'archive' => NULL, - ), - array ( - 'id' => '60', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '61', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail', - 'archive' => NULL, - ), - array ( - 'id' => '62', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.4', - 'taxonomy' => '4', - 'name' => 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter', - 'archive' => NULL, - ), - array ( - 'id' => '63', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards', - 'archive' => NULL, - ), - array ( - 'id' => '64', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.6', - 'taxonomy' => '4', - 'name' => 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique', - 'archive' => NULL, - ), - array ( - 'id' => '65', - 'fk_operational_competence' => '14', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Assurer la remontée des données du client, des tests et systèmes, etc', - 'archive' => NULL, - ), - array ( - 'id' => '66', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.1', - 'taxonomy' => '3', - 'name' => 'Présenter les méthodes de gestion de projets de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '67', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.2', - 'taxonomy' => '4', - 'name' => 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources', - 'archive' => NULL, - ), - array ( - 'id' => '68', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.3', - 'taxonomy' => '3', - 'name' => 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter', - 'archive' => NULL, - ), - array ( - 'id' => '69', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Présenter et démontrer des solutions', - 'archive' => NULL, - ), - array ( - 'id' => '70', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.5', - 'taxonomy' => '4', - 'name' => 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)', - 'archive' => NULL, - ), - array ( - 'id' => '71', - 'fk_operational_competence' => '15', - 'symbol' => 'E.2.6', - 'taxonomy' => '4', - 'name' => 'Refléter le travail du projet et assurer le transfert des connaissances', - 'archive' => NULL, - ), - array ( - 'id' => '72', - 'fk_operational_competence' => '16', - 'symbol' => 'E.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '73', - 'fk_operational_competence' => '16', - 'symbol' => 'E.3.2', - 'taxonomy' => '5', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '74', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '75', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '76', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '77', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', - 'archive' => NULL, - ), - array ( - 'id' => '78', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', - 'archive' => NULL, - ), - array ( - 'id' => '79', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.6', - 'taxonomy' => '3', - 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '80', - 'fk_operational_competence' => '17', - 'symbol' => 'A.1.7', - 'taxonomy' => '6', - 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '81', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)', - 'archive' => NULL, - ), - array ( - 'id' => '82', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '83', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.3', - 'taxonomy' => '3', - 'name' => 'Acquérir le matériel, les logiciels et les licences', - 'archive' => NULL, - ), - array ( - 'id' => '84', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données', - 'archive' => NULL, - ), - array ( - 'id' => '85', - 'fk_operational_competence' => '18', - 'symbol' => 'A.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation', - 'archive' => NULL, - ), - array ( - 'id' => '86', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '87', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '88', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '89', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '90', - 'fk_operational_competence' => '19', - 'symbol' => 'A.3.5', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils', - 'archive' => NULL, - ), - array ( - 'id' => '91', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.1', - 'taxonomy' => '4', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', - 'archive' => NULL, - ), - array ( - 'id' => '92', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.2', - 'taxonomy' => '3', - 'name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '93', - 'fk_operational_competence' => '20', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '94', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.1', - 'taxonomy' => '4', - 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', - 'archive' => NULL, - ), - array ( - 'id' => '95', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.2', - 'taxonomy' => '4', - 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '96', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', - 'archive' => NULL, - ), - array ( - 'id' => '97', - 'fk_operational_competence' => '21', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Visualiser et documenter les réseaux et leur topologie', - 'archive' => NULL, - ), - array ( - 'id' => '98', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.1', - 'taxonomy' => '4', - 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', - 'archive' => NULL, - ), - array ( - 'id' => '99', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.2', - 'taxonomy' => '4', - 'name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie', - 'archive' => NULL, - ), - array ( - 'id' => '100', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '101', - 'fk_operational_competence' => '22', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', - 'archive' => NULL, - ), - array ( - 'id' => '102', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.1', - 'taxonomy' => '3', - 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', - 'archive' => NULL, - ), - array ( - 'id' => '103', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.2', - 'taxonomy' => '3', - 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '104', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.3', - 'taxonomy' => '4', - 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '105', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', - 'archive' => NULL, - ), - array ( - 'id' => '106', - 'fk_operational_competence' => '23', - 'symbol' => 'C.1.5', - 'taxonomy' => '3', - 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', - 'archive' => NULL, - ), - array ( - 'id' => '107', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.1', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', - 'archive' => NULL, - ), - array ( - 'id' => '108', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.2', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', - 'archive' => NULL, - ), - array ( - 'id' => '109', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '110', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', - 'archive' => NULL, - ), - array ( - 'id' => '111', - 'fk_operational_competence' => '24', - 'symbol' => 'C.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes', - 'archive' => NULL, - ), - array ( - 'id' => '112', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '113', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', - 'archive' => NULL, - ), - array ( - 'id' => '114', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '115', - 'fk_operational_competence' => '25', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité', - 'archive' => NULL, - ), - array ( - 'id' => '116', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '117', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.2', - 'taxonomy' => '4', - 'name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', - 'archive' => NULL, - ), - array ( - 'id' => '118', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.3', - 'taxonomy' => '3', - 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '119', - 'fk_operational_competence' => '26', - 'symbol' => 'C.4.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', - 'archive' => NULL, - ), - array ( - 'id' => '120', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.1', - 'taxonomy' => '4', - 'name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils', - 'archive' => NULL, - ), - array ( - 'id' => '121', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.2', - 'taxonomy' => '3', - 'name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)', - 'archive' => NULL, - ), - array ( - 'id' => '122', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.3', - 'taxonomy' => '3', - 'name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '123', - 'fk_operational_competence' => '27', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer la documentation pour les utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '124', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème', - 'archive' => NULL, - ), - array ( - 'id' => '125', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques', - 'archive' => NULL, - ), - array ( - 'id' => '126', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils', - 'archive' => NULL, - ), - array ( - 'id' => '127', - 'fk_operational_competence' => '28', - 'symbol' => 'D.2.4', - 'taxonomy' => '3', - 'name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '128', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.1', - 'taxonomy' => '3', - 'name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application', - 'archive' => NULL, - ), - array ( - 'id' => '129', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.2', - 'taxonomy' => '4', - 'name' => 'Appliquer des méthodes pour la détermination de cas de tests', - 'archive' => NULL, - ), - array ( - 'id' => '130', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition, sauvegarder et documenter les données des tests', - 'archive' => NULL, - ), - array ( - 'id' => '131', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.4', - 'taxonomy' => '3', - 'name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible', - 'archive' => NULL, - ), - array ( - 'id' => '132', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition', - 'archive' => NULL, - ), - array ( - 'id' => '133', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.6', - 'taxonomy' => '3', - 'name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures', - 'archive' => NULL, - ), - array ( - 'id' => '134', - 'fk_operational_competence' => '29', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées', - 'archive' => NULL, - ), - array ( - 'id' => '135', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.1', - 'taxonomy' => '4', - 'name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc', - 'archive' => NULL, - ), - array ( - 'id' => '136', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.2', - 'taxonomy' => '4', - 'name' => 'Evaluation des modes de déroulement et des applications appropriées', - 'archive' => NULL, - ), - array ( - 'id' => '137', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.3', - 'taxonomy' => '4', - 'name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue', - 'archive' => NULL, - ), - array ( - 'id' => '138', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Utiliser des standards et processus de développement', - 'archive' => NULL, - ), - array ( - 'id' => '139', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.5', - 'taxonomy' => '3', - 'name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns', - 'archive' => NULL, - ), - array ( - 'id' => '140', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.6', - 'taxonomy' => '3', - 'name' => 'Respecter la convention des codes', - 'archive' => NULL, - ), - array ( - 'id' => '141', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.7', - 'taxonomy' => '3', - 'name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '142', - 'fk_operational_competence' => '30', - 'symbol' => 'E.2.8', - 'taxonomy' => '3', - 'name' => 'Tester l’application et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '143', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.1', - 'taxonomy' => '4', - 'name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications', - 'archive' => NULL, - ), - array ( - 'id' => '144', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.2', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)', - 'archive' => NULL, - ), - array ( - 'id' => '145', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.3', - 'taxonomy' => '3', - 'name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées', - 'archive' => NULL, - ), - array ( - 'id' => '146', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.4', - 'taxonomy' => '3', - 'name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code', - 'archive' => NULL, - ), - array ( - 'id' => '147', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.5', - 'taxonomy' => '3', - 'name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances', - 'archive' => NULL, - ), - array ( - 'id' => '148', - 'fk_operational_competence' => '31', - 'symbol' => 'E.3.6', - 'taxonomy' => '3', - 'name' => 'Tester l’application de manière exhaustive et tout documenter', - 'archive' => NULL, - ), - array ( - 'id' => '149', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.1', - 'taxonomy' => '4', - 'name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)', - 'archive' => NULL, - ), - array ( - 'id' => '150', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.2', - 'taxonomy' => '3', - 'name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)', - 'archive' => NULL, - ), - array ( - 'id' => '151', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.3', - 'taxonomy' => '3', - 'name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance', - 'archive' => NULL, - ), - array ( - 'id' => '152', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.4', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)', - 'archive' => NULL, - ), - array ( - 'id' => '153', - 'fk_operational_competence' => '32', - 'symbol' => 'E.4.5', - 'taxonomy' => '4', - 'name' => 'Planifier et exécuter la migration de données', - 'archive' => NULL, - ), - array ( - 'id' => '154', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.1', - 'taxonomy' => '3', - 'name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '155', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.2', - 'taxonomy' => '3', - 'name' => 'Appliquer le concept de transaction et programmer l’accès aux données', - 'archive' => NULL, - ), - array ( - 'id' => '156', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.3', - 'taxonomy' => '3', - 'name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser', - 'archive' => NULL, - ), - array ( - 'id' => '157', - 'fk_operational_competence' => '33', - 'symbol' => 'E.5.4', - 'taxonomy' => '4', - 'name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '158', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.1', - 'taxonomy' => '3', - 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '159', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '160', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.3', - 'taxonomy' => '3', - 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', - 'archive' => NULL, - ), - array ( - 'id' => '161', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.4', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', - 'archive' => NULL, - ), - array ( - 'id' => '162', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.5', - 'taxonomy' => '3', - 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', - 'archive' => NULL, - ), - array ( - 'id' => '163', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.6', - 'taxonomy' => '3', - 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', - 'archive' => NULL, - ), - array ( - 'id' => '164', - 'fk_operational_competence' => '34', - 'symbol' => 'F.1.7', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', - 'archive' => NULL, - ), - array ( - 'id' => '165', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.1', - 'taxonomy' => '4', - 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', - 'archive' => NULL, - ), - array ( - 'id' => '166', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.2', - 'taxonomy' => '3', - 'name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', - 'archive' => NULL, - ), - array ( - 'id' => '167', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.3', - 'taxonomy' => '3', - 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', - 'archive' => NULL, - ), - array ( - 'id' => '168', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.4', - 'taxonomy' => '3', - 'name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '169', - 'fk_operational_competence' => '35', - 'symbol' => 'F.2.5', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', - 'archive' => NULL, - ), - array ( - 'id' => '170', - 'fk_operational_competence' => '36', - 'symbol' => 'F.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '171', - 'fk_operational_competence' => '36', - 'symbol' => 'F.3.2', - 'taxonomy' => '3', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '177', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.1', - 'taxonomy' => '4', - 'name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '178', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '179', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '180', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles', - 'archive' => NULL, - ), - array ( - 'id' => '181', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données', - 'archive' => NULL, - ), - array ( - 'id' => '182', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.6', - 'taxonomy' => '3', - 'name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '183', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.7', - 'taxonomy' => '3', - 'name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '184', - 'fk_operational_competence' => '42', - 'symbol' => 'A.1.8', - 'taxonomy' => '4', - 'name' => 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)', - 'archive' => NULL, - ), - array ( - 'id' => '185', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.1', - 'taxonomy' => '4', - 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre -(organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '186', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.2', - 'taxonomy' => '4', - 'name' => 'Choisir le matériel et logiciels appropriés en tenant compte -des directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '187', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.3', - 'taxonomy' => '4', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer', - 'archive' => NULL, - ), - array ( - 'id' => '188', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)', - 'archive' => NULL, - ), - array ( - 'id' => '189', - 'fk_operational_competence' => '43', - 'symbol' => 'A.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés', - 'archive' => NULL, - ), - array ( - 'id' => '190', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '191', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.2', - 'taxonomy' => '4', - 'name' => 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '192', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.3', - 'taxonomy' => '3', - 'name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau', - 'archive' => NULL, - ), - array ( - 'id' => '193', - 'fk_operational_competence' => '44', - 'symbol' => 'A.3.4', - 'taxonomy' => '3', - 'name' => ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '194', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.1', - 'taxonomy' => '4', - 'name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc', - 'archive' => NULL, - ), - array ( - 'id' => '195', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.2', - 'taxonomy' => '4', - 'name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur', - 'archive' => NULL, - ), - array ( - 'id' => '196', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)', - 'archive' => NULL, - ), - array ( - 'id' => '197', - 'fk_operational_competence' => '45', - 'symbol' => 'B.1.4', - 'taxonomy' => '3', - 'name' => 'Visualiser et documenter les réseaux et leur topologie', - 'archive' => NULL, - ), - array ( - 'id' => '198', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.1', - 'taxonomy' => '3', - 'name' => 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement', - 'archive' => NULL, - ), - array ( - 'id' => '199', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.2', - 'taxonomy' => '3', - 'name' => 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre', - 'archive' => NULL, - ), - array ( - 'id' => '200', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.3', - 'taxonomy' => '3', - 'name' => 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '201', - 'fk_operational_competence' => '46', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Documenter la solution et élaborer le mode d’emploi utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '202', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.1', - 'taxonomy' => '5', - 'name' => 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)', - 'archive' => NULL, - ), - array ( - 'id' => '203', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.2', - 'taxonomy' => '5', - 'name' => 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration', - 'archive' => NULL, - ), - array ( - 'id' => '204', - 'fk_operational_competence' => '47', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité', - 'archive' => NULL, - ), - array ( - 'id' => '205', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.1', - 'taxonomy' => '5', - 'name' => 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement', - 'archive' => NULL, - ), - array ( - 'id' => '206', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.2', - 'taxonomy' => '5', - 'name' => 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup', - 'archive' => NULL, - ), - array ( - 'id' => '207', - 'fk_operational_competence' => '48', - 'symbol' => 'B.4.3', - 'taxonomy' => '3', - 'name' => 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '208', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '209', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.2', - 'taxonomy' => '4', - 'name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)', - 'archive' => NULL, - ), - array ( - 'id' => '210', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.3', - 'taxonomy' => '3', - 'name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '211', - 'fk_operational_competence' => '49', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité', - 'archive' => NULL, - ), - array ( - 'id' => '212', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.1', - 'taxonomy' => '5', - 'name' => 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)', - 'archive' => NULL, - ), - array ( - 'id' => '213', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.2', - 'taxonomy' => '4', - 'name' => 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '214', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus', - 'archive' => NULL, - ), - array ( - 'id' => '215', - 'fk_operational_competence' => '50', - 'symbol' => 'C.2.4', - 'taxonomy' => '3', - 'name' => 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation', - 'archive' => NULL, - ), - array ( - 'id' => '216', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '217', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.2', - 'taxonomy' => '4', - 'name' => 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés', - 'archive' => NULL, - ), - array ( - 'id' => '218', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.3', - 'taxonomy' => '3', - 'name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '219', - 'fk_operational_competence' => '51', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés', - 'archive' => NULL, - ), - array ( - 'id' => '220', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.1', - 'taxonomy' => '5', - 'name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque', - 'archive' => NULL, - ), - array ( - 'id' => '221', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.2', - 'taxonomy' => '4', - 'name' => 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie', - 'archive' => NULL, - ), - array ( - 'id' => '222', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.3', - 'taxonomy' => '3', - 'name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '223', - 'fk_operational_competence' => '52', - 'symbol' => 'C.4.4', - 'taxonomy' => '3', - 'name' => 'Tester, valider et exécuter la restauration des données, documenter le travail', - 'archive' => NULL, - ), - array ( - 'id' => '224', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.1', - 'taxonomy' => '4', - 'name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)', - 'archive' => NULL, - ), - array ( - 'id' => '225', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.2', - 'taxonomy' => '4', - 'name' => 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès', - 'archive' => NULL, - ), - array ( - 'id' => '226', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.3', - 'taxonomy' => '3', - 'name' => 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité', - 'archive' => NULL, - ), - array ( - 'id' => '227', - 'fk_operational_competence' => '53', - 'symbol' => 'C.5.4', - 'taxonomy' => '3', - 'name' => 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests', - 'archive' => NULL, - ), - array ( - 'id' => '228', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.1', - 'taxonomy' => '3', - 'name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées', - 'archive' => NULL, - ), - array ( - 'id' => '229', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.2', - 'taxonomy' => '3', - 'name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '230', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.3', - 'taxonomy' => '5', - 'name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '231', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés', - 'archive' => NULL, - ), - array ( - 'id' => '232', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.5', - 'taxonomy' => '3', - 'name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist', - 'archive' => NULL, - ), - array ( - 'id' => '233', - 'fk_operational_competence' => '54', - 'symbol' => 'D.1.6', - 'taxonomy' => '3', - 'name' => 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '234', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist', - 'archive' => NULL, - ), - array ( - 'id' => '235', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente', - 'archive' => NULL, - ), - array ( - 'id' => '236', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '237', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.4', - 'taxonomy' => '3', - 'name' => 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents', - 'archive' => NULL, - ), - array ( - 'id' => '238', - 'fk_operational_competence' => '55', - 'symbol' => 'D.2.5', - 'taxonomy' => '3', - 'name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ', - 'archive' => NULL, - ), - array ( - 'id' => '239', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.1', - 'taxonomy' => '3', - 'name' => 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité', - 'archive' => NULL, - ), - array ( - 'id' => '240', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.2', - 'taxonomy' => '3', - 'name' => 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils', - 'archive' => NULL, - ), - array ( - 'id' => '241', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.3', - 'taxonomy' => '3', - 'name' => 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes', - 'archive' => NULL, - ), - array ( - 'id' => '242', - 'fk_operational_competence' => '56', - 'symbol' => 'D.3.4', - 'taxonomy' => '3', - 'name' => 'Informer et instruire les utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '243', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.1', - 'taxonomy' => '3', - 'name' => 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte', - 'archive' => NULL, - ), - array ( - 'id' => '244', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.2', - 'taxonomy' => '4', - 'name' => 'Développer une solution et la présenter au supérieur ou à l’utilisateur', - 'archive' => NULL, - ), - array ( - 'id' => '245', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.3', - 'taxonomy' => '3', - 'name' => 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)', - 'archive' => NULL, - ), - array ( - 'id' => '246', - 'fk_operational_competence' => '57', - 'symbol' => 'D.4.4', - 'taxonomy' => '3', - 'name' => 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '247', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.1', - 'taxonomy' => '4', - 'name' => 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres', - 'archive' => NULL, - ), - array ( - 'id' => '248', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.2', - 'taxonomy' => '4', - 'name' => 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution', - 'archive' => NULL, - ), - array ( - 'id' => '249', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.3', - 'taxonomy' => '3', - 'name' => 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités', - 'archive' => NULL, - ), - array ( - 'id' => '250', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.4', - 'taxonomy' => '3', - 'name' => 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci', - 'archive' => NULL, - ), - array ( - 'id' => '251', - 'fk_operational_competence' => '58', - 'symbol' => 'D.5.5', - 'taxonomy' => '3', - 'name' => 'Informer les utilisateurs selon les besoins', - 'archive' => NULL, - ), - array ( - 'id' => '252', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.1', - 'taxonomy' => '3', - 'name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '253', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.2', - 'taxonomy' => '3', - 'name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc', - 'archive' => NULL, - ), - array ( - 'id' => '254', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.3', - 'taxonomy' => '3', - 'name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours', - 'archive' => NULL, - ), - array ( - 'id' => '255', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.4', - 'taxonomy' => '3', - 'name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas', - 'archive' => NULL, - ), - array ( - 'id' => '256', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.5', - 'taxonomy' => '3', - 'name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations', - 'archive' => NULL, - ), - array ( - 'id' => '257', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.6', - 'taxonomy' => '3', - 'name' => 'Remettre l’installation et faire signer le protocole de remise au client', - 'archive' => NULL, - ), - array ( - 'id' => '258', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.7', - 'taxonomy' => '3', - 'name' => 'Instruire les utilisateurs sur les modifications de leurs applications', - 'archive' => NULL, - ), - array ( - 'id' => '259', - 'fk_operational_competence' => '59', - 'symbol' => 'E.1.8', - 'taxonomy' => '3', - 'name' => 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable', - 'archive' => NULL, - ), - array ( - 'id' => '260', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.1', - 'taxonomy' => '4', - 'name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles', - 'archive' => NULL, - ), - array ( - 'id' => '261', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.2', - 'taxonomy' => '3', - 'name' => 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global', - 'archive' => NULL, - ), - array ( - 'id' => '262', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.3', - 'taxonomy' => '3', - 'name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations', - 'archive' => NULL, - ), - array ( - 'id' => '263', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.4', - 'taxonomy' => '3', - 'name' => 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '264', - 'fk_operational_competence' => '60', - 'symbol' => 'E.2.5', - 'taxonomy' => '3', - 'name' => 'Mettre à disposition des collègues ses propres expériences issues du projet', - 'archive' => NULL, - ), - array ( - 'id' => '265', - 'fk_operational_competence' => '61', - 'symbol' => 'E.3.1', - 'taxonomy' => '3', - 'name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '266', - 'fk_operational_competence' => '61', - 'symbol' => 'E.3.2', - 'taxonomy' => '3', - 'name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis', - 'archive' => NULL, - ), - array ( - 'id' => '267', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.1', - 'taxonomy' => '2', - 'name' => 'Expliquent les tâches et fonctions des systèmes d’exploitation courants', - 'archive' => NULL, - ), - array ( - 'id' => '268', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.2', - 'taxonomy' => '4', - 'name' => 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '269', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.3', - 'taxonomy' => '3', - 'name' => 'Installent et configurent des appareils périphériques et leurs extensions', - 'archive' => NULL, - ), - array ( - 'id' => '270', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.4', - 'taxonomy' => '3', - 'name' => 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement', - 'archive' => NULL, - ), - array ( - 'id' => '271', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.5', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits', - 'archive' => NULL, - ), - array ( - 'id' => '272', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.6', - 'taxonomy' => '1', - 'name' => 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs', - 'archive' => NULL, - ), - array ( - 'id' => '273', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.7', - 'taxonomy' => '3', - 'name' => 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants', - 'archive' => NULL, - ), - array ( - 'id' => '274', - 'fk_operational_competence' => '62', - 'symbol' => 'A.1.8', - 'taxonomy' => '3', - 'name' => 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique', - 'archive' => NULL, - ), - array ( - 'id' => '275', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.1', - 'taxonomy' => '3', - 'name' => 'Installent et configurent des applications standards et les administrent', - 'archive' => NULL, - ), - array ( - 'id' => '276', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.2', - 'taxonomy' => '2', - 'name' => 'Actualisent les logiciels existants avec une version actuelle', - 'archive' => NULL, - ), - array ( - 'id' => '277', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.3', - 'taxonomy' => '3', - 'name' => 'Décrivent les diverses variantes de licences', - 'archive' => NULL, - ), - array ( - 'id' => '278', - 'fk_operational_competence' => '63', - 'symbol' => 'A.2.4', - 'taxonomy' => '3', - 'name' => 'Appliquent les processus de la gestion des licences', - 'archive' => NULL, - ), - array ( - 'id' => '279', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.1', - 'taxonomy' => '4', - 'name' => 'Exécutent des tests de fonctions selon directives et évaluent les résultats', - 'archive' => NULL, - ), - array ( - 'id' => '280', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.2', - 'taxonomy' => '3', - 'name' => 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres', - 'archive' => NULL, - ), - array ( - 'id' => '281', - 'fk_operational_competence' => '64', - 'symbol' => 'A.3.3', - 'taxonomy' => '4', - 'name' => 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude', - 'archive' => NULL, - ), - array ( - 'id' => '282', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.1', - 'taxonomy' => '3', - 'name' => 'Appliquent des scripts et contrôlent leur exécution', - 'archive' => NULL, - ), - array ( - 'id' => '283', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.2', - 'taxonomy' => '4', - 'name' => 'Entreprennent des adaptations sur la fonctionnalité du script', - 'archive' => NULL, - ), - array ( - 'id' => '284', - 'fk_operational_competence' => '65', - 'symbol' => 'A.4.3', - 'taxonomy' => '3', - 'name' => 'Programment des scripts simples selon directives', - 'archive' => NULL, - ), - array ( - 'id' => '285', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.1', - 'taxonomy' => '2', - 'name' => 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)', - 'archive' => NULL, - ), - array ( - 'id' => '286', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.2', - 'taxonomy' => '4', - 'name' => 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant', - 'archive' => NULL, - ), - array ( - 'id' => '287', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.3', - 'taxonomy' => '4', - 'name' => 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '288', - 'fk_operational_competence' => '66', - 'symbol' => 'B.1.4', - 'taxonomy' => '2', - 'name' => 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud', - 'archive' => NULL, - ), - array ( - 'id' => '289', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.1', - 'taxonomy' => '3', - 'name' => 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur', - 'archive' => NULL, - ), - array ( - 'id' => '290', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.2', - 'taxonomy' => '2', - 'name' => 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions', - 'archive' => NULL, - ), - array ( - 'id' => '291', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.3', - 'taxonomy' => '4', - 'name' => 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '292', - 'fk_operational_competence' => '67', - 'symbol' => 'B.2.4', - 'taxonomy' => '3', - 'name' => 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)', - 'archive' => NULL, - ), - array ( - 'id' => '293', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.1', - 'taxonomy' => '2', - 'name' => 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT', - 'archive' => NULL, - ), - array ( - 'id' => '294', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.2', - 'taxonomy' => '3', - 'name' => 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel', - 'archive' => NULL, - ), - array ( - 'id' => '295', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.3', - 'taxonomy' => '3', - 'name' => 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '296', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.4', - 'taxonomy' => '3', - 'name' => 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation', - 'archive' => NULL, - ), - array ( - 'id' => '297', - 'fk_operational_competence' => '68', - 'symbol' => 'B.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs', - 'archive' => NULL, - ), - array ( - 'id' => '298', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.1', - 'taxonomy' => '3', - 'name' => 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique', - 'archive' => NULL, - ), - array ( - 'id' => '299', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.2', - 'taxonomy' => '2', - 'name' => 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution', - 'archive' => NULL, - ), - array ( - 'id' => '300', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.3', - 'taxonomy' => '3', - 'name' => 'Appliquent les logiciels appropriés pour la réalisation de présentations', - 'archive' => NULL, - ), - array ( - 'id' => '301', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.4', - 'taxonomy' => '3', - 'name' => 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations', - 'archive' => NULL, - ), - array ( - 'id' => '302', - 'fk_operational_competence' => '69', - 'symbol' => 'C.1.5', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '303', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.1', - 'taxonomy' => '3', - 'name' => 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits', - 'archive' => NULL, - ), - array ( - 'id' => '304', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.2', - 'taxonomy' => '3', - 'name' => 'Appliquent des directives et modèles de documentation de l‘entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '305', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.3', - 'taxonomy' => '3', - 'name' => 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires', - 'archive' => NULL, - ), - array ( - 'id' => '306', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.4', - 'taxonomy' => '4', - 'name' => 'Trient l’indispensable du superflu et fixent les bonnes priorités', - 'archive' => NULL, - ), - array ( - 'id' => '307', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.5', - 'taxonomy' => '3', - 'name' => 'Élaborent des modes d’emploi compréhensibles et clairement structurés', - 'archive' => NULL, - ), - array ( - 'id' => '308', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.6', - 'taxonomy' => '3', - 'name' => 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace', - 'archive' => NULL, - ), - array ( - 'id' => '309', - 'fk_operational_competence' => '70', - 'symbol' => 'C.2.7', - 'taxonomy' => '3', - 'name' => 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation', - 'archive' => NULL, - ), - array ( - 'id' => '310', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.1', - 'taxonomy' => '3', - 'name' => 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition', - 'archive' => NULL, - ), - array ( - 'id' => '311', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.2', - 'taxonomy' => '3', - 'name' => 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée', - 'archive' => NULL, - ), - array ( - 'id' => '312', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.3', - 'taxonomy' => '4', - 'name' => 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent', - 'archive' => NULL, - ), - array ( - 'id' => '313', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.4', - 'taxonomy' => '3', - 'name' => 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient', - 'archive' => NULL, - ), - array ( - 'id' => '314', - 'fk_operational_competence' => '71', - 'symbol' => 'C.3.5', - 'taxonomy' => '3', - 'name' => 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)', - 'archive' => NULL, - ), - array ( - 'id' => '315', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.1', - 'taxonomy' => '2', - 'name' => 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème', - 'archive' => NULL, - ), - array ( - 'id' => '316', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.2', - 'taxonomy' => '4', - 'name' => 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte', - 'archive' => NULL, - ), - array ( - 'id' => '317', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.3', - 'taxonomy' => '3', - 'name' => 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement', - 'archive' => NULL, - ), - array ( - 'id' => '318', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.4', - 'taxonomy' => '3', - 'name' => 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions', - 'archive' => NULL, - ), - array ( - 'id' => '319', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.5', - 'taxonomy' => '3', - 'name' => 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux', - 'archive' => NULL, - ), - array ( - 'id' => '320', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.6', - 'taxonomy' => '2', - 'name' => 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes', - 'archive' => NULL, - ), - array ( - 'id' => '321', - 'fk_operational_competence' => '72', - 'symbol' => 'D.1.7', - 'taxonomy' => '3', - 'name' => 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients', - 'archive' => NULL, - ), - array ( - 'id' => '322', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.1', - 'taxonomy' => '3', - 'name' => 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée', - 'archive' => NULL, - ), - array ( - 'id' => '323', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.2', - 'taxonomy' => '3', - 'name' => 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe', - 'archive' => NULL, - ), - array ( - 'id' => '324', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.3', - 'taxonomy' => '3', - 'name' => 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe', - 'archive' => NULL, - ), - array ( - 'id' => '325', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.4', - 'taxonomy' => '2', - 'name' => 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe', - 'archive' => NULL, - ), - array ( - 'id' => '326', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.5', - 'taxonomy' => '2', - 'name' => 'Décrivent les causes et la dynamique des conflits', - 'archive' => NULL, - ), - array ( - 'id' => '327', - 'fk_operational_competence' => '73', - 'symbol' => 'D.2.6', - 'taxonomy' => '4', - 'name' => 'Décèlent à temps les situations de conflits et prend les mesures en conséquence', - 'archive' => NULL, - ), - array ( - 'id' => '328', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.1', - 'taxonomy' => '3', - 'name' => 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive', - 'archive' => NULL, - ), - array ( - 'id' => '329', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.2', - 'taxonomy' => '2', - 'name' => 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos', - 'archive' => NULL, - ), - array ( - 'id' => '330', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.3', - 'taxonomy' => '3', - 'name' => 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail', - 'archive' => NULL, - ), - array ( - 'id' => '331', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.4', - 'taxonomy' => '3', - 'name' => 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes', - 'archive' => NULL, - ), - array ( - 'id' => '332', - 'fk_operational_competence' => '74', - 'symbol' => 'D.3.5', - 'taxonomy' => '3', - 'name' => 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers', - 'archive' => NULL, - ), - array ( - 'id' => '333', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'as', - 'archive' => NULL, - ), - array ( - 'id' => '334', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'a23', - 'archive' => NULL, - ), - array ( - 'id' => '335', - 'fk_operational_competence' => '2', - 'symbol' => 'aa', - 'taxonomy' => '6', - 'name' => 'a12', - 'archive' => NULL, - ), - array ( - 'id' => '336', - 'fk_operational_competence' => '2', - 'symbol' => 'A1', - 'taxonomy' => '6', - 'name' => 'a123', - 'archive' => NULL, - ), - ]; - foreach ($objectives as $objective){ - $this->db->table('objective')->insert($objective); + $objective = array( + array('id' => '1','fk_operational_competence' => '1','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Enregistrer les besoins et discuter les solutions possibles, s’entretenir avec le client/supérieur sur les restrictions des exigences','archive' => NULL), + array('id' => '2','fk_operational_competence' => '1','symbol' => 'A.1.2','taxonomy' => '4','name' => ' Confirmer les exigences en ses propres termes (traiter et en déduire, lister les questions)','archive' => NULL), + array('id' => '3','fk_operational_competence' => '1','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Eclaircir toutes les questions de la liste (questions sur les solutions, l’environnement, les dépendances, estimation temporelle)','archive' => NULL), + array('id' => '4','fk_operational_competence' => '1','symbol' => 'A.1.4','taxonomy' => '4','name' => 'Présenter les exigences de manière structurée (par ex. avec UML), élaborer le cahier des charges et le subdiviser en types d‘exigences','archive' => NULL), + array('id' => '5','fk_operational_competence' => '1','symbol' => 'A.1.5','taxonomy' => '4','name' => 'Vérifier avec le mandant la solution concernant l’exhaustivité, ainsi que la clarté, et conclure par une confirmation écrite','archive' => NULL), + array('id' => '6','fk_operational_competence' => '2','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Elaborer aussi loin que possibles plusieurs variantes de solutions en regard des exigences et de la satisfaction du client (par ex. dans le GUI ou sur la plateforme (PC, tablette))','archive' => NULL), + array('id' => '7','fk_operational_competence' => '2','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Représenter des comparaisons de variantes et d‘évaluations (y compris, produits), conseiller la clientèle dans le choix (avantages, désavantages, problèmes de la solution) sur la base de leur analyse des valeurs utiles','archive' => NULL), + array('id' => '8','fk_operational_competence' => '2','symbol' => 'A.2.3','taxonomy' => '4','name' => 'Choisir une procédure de résolution des problèmes, par ex. développement de prototypes, recherche de solutions de ce qui peut être résolu avec l’informatique, ou autres moyens tels qu’organisation ou formation','archive' => NULL), + array('id' => '9','fk_operational_competence' => '3','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Vérifier si toutes les exigences ont été reprises et remplies avec la solution choisie','archive' => NULL), + array('id' => '10','fk_operational_competence' => '3','symbol' => 'A.3.2','taxonomy' => '3','name' => 'Ecrire une offre, sur la base de leur planification, pour la réalisation et l’introduction de la nouvelle application','archive' => NULL), + array('id' => '11','fk_operational_competence' => '3','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Obtenir la confirmation et la distribution du mandat du client','archive' => NULL), + array('id' => '12','fk_operational_competence' => '4','symbol' => 'B.1.1','taxonomy' => '5','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '13','fk_operational_competence' => '4','symbol' => 'B.1.2','taxonomy' => '5','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '14','fk_operational_competence' => '4','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '15','fk_operational_competence' => '4','symbol' => 'B.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '16','fk_operational_competence' => '4','symbol' => 'B.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '17','fk_operational_competence' => '4','symbol' => 'B.1.6','taxonomy' => '4','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '18','fk_operational_competence' => '4','symbol' => 'B.1.7','taxonomy' => '4','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '19','fk_operational_competence' => '5','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Résoudre les prescriptions d’entreprises avec des directives techniques (web, mobile, desktop, automates)','archive' => NULL), + array('id' => '20','fk_operational_competence' => '5','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Appliquer des modèles d’architecture dans les solutions (Multitier, Frameworks, Patterns)','archive' => NULL), + array('id' => '21','fk_operational_competence' => '5','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Satisfaire des exigences non-fonctionnelles telles que temps de réponse, stabilité, disponibilité','archive' => NULL), + array('id' => '22','fk_operational_competence' => '5','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Prise en compte de standards internationaux et spécifiques à l’entreprise dans le cadre des solutions','archive' => NULL), + array('id' => '23','fk_operational_competence' => '6','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc ','archive' => NULL), + array('id' => '24','fk_operational_competence' => '6','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '25','fk_operational_competence' => '6','symbol' => 'B.3.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, d’efficience énergétique, de la protection des données, des règles en termes de licences, etc. et documenter de manière continue','archive' => NULL), + array('id' => '26','fk_operational_competence' => '6','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '27','fk_operational_competence' => '6','symbol' => 'B.3.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Software design-Patterns','archive' => NULL), + array('id' => '28','fk_operational_competence' => '6','symbol' => 'B.3.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '29','fk_operational_competence' => '6','symbol' => 'B.3.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '30','fk_operational_competence' => '6','symbol' => 'B.3.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '31','fk_operational_competence' => '7','symbol' => 'B.4.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '32','fk_operational_competence' => '7','symbol' => 'B.4.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '33','fk_operational_competence' => '7','symbol' => 'B.4.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '34','fk_operational_competence' => '7','symbol' => 'B.4.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '35','fk_operational_competence' => '7','symbol' => 'B.4.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '36','fk_operational_competence' => '7','symbol' => 'B.4.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '37','fk_operational_competence' => '8','symbol' => 'B.5.1','taxonomy' => '3','name' => 'Organiser des tests systèmes, des tests de remise, des tests nonfonctionnels, des tests négatifs pour lesquels il faut préparer des données de test, documenter le tout','archive' => NULL), + array('id' => '38','fk_operational_competence' => '8','symbol' => 'B.5.2','taxonomy' => '3','name' => 'Respecter les standards','archive' => NULL), + array('id' => '39','fk_operational_competence' => '8','symbol' => 'B.5.3','taxonomy' => '4','name' => 'Elaborer la documentation technique pour les utilisateurs, et l’exploitation','archive' => NULL), + array('id' => '40','fk_operational_competence' => '8','symbol' => 'B.5.4','taxonomy' => '4','name' => 'Organiser des révisions en phase, déroulement itératif afin de respecter la planification temporel et de qualité','archive' => NULL), + array('id' => '41','fk_operational_competence' => '9','symbol' => 'B.6.1','taxonomy' => '4','name' => 'Planifier l’introduction avec la procédure définie, y compris, l’assurance, le cas échéant, d’un retour à la situation initiale en cas de besoin','archive' => NULL), + array('id' => '42','fk_operational_competence' => '9','symbol' => 'B.6.2','taxonomy' => '3','name' => 'Organiser et transmettre la migration des données avec les éventuelles conversions nécessaires','archive' => NULL), + array('id' => '43','fk_operational_competence' => '9','symbol' => 'B.6.3','taxonomy' => '3','name' => 'Préparer la remise de la production','archive' => NULL), + array('id' => '44','fk_operational_competence' => '9','symbol' => 'B.6.4','taxonomy' => '3','name' => 'Organiser en temps voulu l’instruction et l’information des utilisateurs','archive' => NULL), + array('id' => '45','fk_operational_competence' => '10','symbol' => 'C.1.1','taxonomy' => '4','name' => 'Identifier des entités et leurs relations, en élaborer un modèle en plusieurs niveaux d‘abstraction (normaliser)','archive' => NULL), + array('id' => '46','fk_operational_competence' => '10','symbol' => 'C.1.2','taxonomy' => '4','name' => 'Décrire des entités et déterminer des types de données','archive' => NULL), + array('id' => '47','fk_operational_competence' => '10','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Convertir les exigences dans des modèles standards de notation (UML, ERD etc.)','archive' => NULL), + array('id' => '48','fk_operational_competence' => '10','symbol' => 'C.1.4','taxonomy' => '4','name' => 'Formuler des données adéquates de test (tenir compte des conditions limites)','archive' => NULL), + array('id' => '49','fk_operational_competence' => '11','symbol' => 'C.2.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '50','fk_operational_competence' => '11','symbol' => 'C.2.2','taxonomy' => '4','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '51','fk_operational_competence' => '11','symbol' => 'C.2.3','taxonomy' => '4','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '52','fk_operational_competence' => '11','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '53','fk_operational_competence' => '11','symbol' => 'C.2.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '54','fk_operational_competence' => '12','symbol' => 'C.3.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '55','fk_operational_competence' => '12','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '56','fk_operational_competence' => '12','symbol' => 'C.3.3','taxonomy' => '4','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '57','fk_operational_competence' => '12','symbol' => 'C.3.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '58','fk_operational_competence' => '13','symbol' => 'D.1.1','taxonomy' => '3','name' => 'Remarques: comme ces activités ne peuvent pas être effectuées dans toutes les entreprises formatrices, il n’y a pas d’objectifs évaluateurs obligatoires qui sont fixés. Toutes les actions ont lieu dans le cadre des cours interentreprises','archive' => NULL), + array('id' => '59','fk_operational_competence' => '14','symbol' => 'E.1.1','taxonomy' => '4','name' => 'Analyser la quantité de travail sur la base des documents existants et élaborer une planification du travail','archive' => NULL), + array('id' => '60','fk_operational_competence' => '14','symbol' => 'E.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '61','fk_operational_competence' => '14','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Procurer les droits d’accès, les licences, etc. et mettre à disposition l’environnement de travail','archive' => NULL), + array('id' => '62','fk_operational_competence' => '14','symbol' => 'E.1.4','taxonomy' => '4','name' => 'Exécuter les tâches conformément à la planification, déterminer régulièrement l’état du projet et en rapporter','archive' => NULL), + array('id' => '63','fk_operational_competence' => '14','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Tester toutes les fonctions et installations de manière conséquente durant le travail, et les documenter selon des standards','archive' => NULL), + array('id' => '64','fk_operational_competence' => '14','symbol' => 'E.1.6','taxonomy' => '4','name' => 'Instruire les utilisateurs et élaborer à cet effet une bonne documentation technique','archive' => NULL), + array('id' => '65','fk_operational_competence' => '14','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Assurer la remontée des données du client, des tests et systèmes, etc','archive' => NULL), + array('id' => '66','fk_operational_competence' => '15','symbol' => 'E.2.1','taxonomy' => '3','name' => 'Présenter les méthodes de gestion de projets de l’entreprise','archive' => NULL), + array('id' => '67','fk_operational_competence' => '15','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Organiser le travail selon les méthodes usuelles de gestion de projets dans l’entreprise, et élabore une planification réaliste en temps et ressources','archive' => NULL), + array('id' => '68','fk_operational_competence' => '15','symbol' => 'E.2.3','taxonomy' => '3','name' => 'Définir et distribuer des tâches partielles, respectivement prendre en charge de telles tâches et les exécuter','archive' => NULL), + array('id' => '69','fk_operational_competence' => '15','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Présenter et démontrer des solutions','archive' => NULL), + array('id' => '70','fk_operational_competence' => '15','symbol' => 'E.2.5','taxonomy' => '4','name' => 'Elaborer le rapport final du projet (Réflexion en méthodes, déroulement, temps et ressources)','archive' => NULL), + array('id' => '71','fk_operational_competence' => '15','symbol' => 'E.2.6','taxonomy' => '4','name' => 'Refléter le travail du projet et assurer le transfert des connaissances','archive' => NULL), + array('id' => '72','fk_operational_competence' => '16','symbol' => 'E.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '73','fk_operational_competence' => '16','symbol' => 'E.3.2','taxonomy' => '5','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '74','fk_operational_competence' => '17','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '75','fk_operational_competence' => '17','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Evaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur. Après quoi, ils acquièrent le tout, y compris les licences nécessaires','archive' => NULL), + array('id' => '76','fk_operational_competence' => '17','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '77','fk_operational_competence' => '17','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '78','fk_operational_competence' => '17','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '79','fk_operational_competence' => '17','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '80','fk_operational_competence' => '17','symbol' => 'A.1.7','taxonomy' => '6','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '81','fk_operational_competence' => '18','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Etre capable de recevoir un mandat client, planifier la mise en œuvre (organisation, méthodologie, ergonomie, optimisation énergétique)','archive' => NULL), + array('id' => '82','fk_operational_competence' => '18','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Entreprendre l’évaluation et l’acquisition de matériel et logiciels appropriés en tenant compte des prescriptions et des compatibilités de l‘entreprise (y.c. licences), et les présenter à son supérieur','archive' => NULL), + array('id' => '83','fk_operational_competence' => '18','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Acquérir le matériel, les logiciels et les licences','archive' => NULL), + array('id' => '84','fk_operational_competence' => '18','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Entreprendre des configurations de base et pouvoir implémenter des services de base (par ex. accès distant, synchronisation des données, etc.) en tenant compte des mesures de sécurité et de protection des données','archive' => NULL), + array('id' => '85','fk_operational_competence' => '18','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et fonctionnalité de la nouvelle installation','archive' => NULL), + array('id' => '86','fk_operational_competence' => '19','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '87','fk_operational_competence' => '19','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluation et acquisition des appareils appropriés (imprimante, copieur, NAS, appareils multimédia, etc.) en tenant compte des prescriptions et des compatibilités de l‘entreprise, et les présenter à son supérieur','archive' => NULL), + array('id' => '88','fk_operational_competence' => '19','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Acquérir les appareils et entreprendre les configurations de base (accès, droits, acomptes, rapports etc.)','archive' => NULL), + array('id' => '89','fk_operational_competence' => '19','symbol' => 'A.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '90','fk_operational_competence' => '19','symbol' => 'A.3.5','taxonomy' => '3','name' => 'Instruire les utilisateurs sur le maniement et les caractéristiques des nouveaux appareils','archive' => NULL), + array('id' => '91','fk_operational_competence' => '20','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '92','fk_operational_competence' => '20','symbol' => 'B.1.2','taxonomy' => '3','name' => 'acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '93','fk_operational_competence' => '20','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '94','fk_operational_competence' => '21','symbol' => 'B.2.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '95','fk_operational_competence' => '21','symbol' => 'B.2.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '96','fk_operational_competence' => '21','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '97','fk_operational_competence' => '21','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '98','fk_operational_competence' => '22','symbol' => 'B.3.1','taxonomy' => '4','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '99','fk_operational_competence' => '22','symbol' => 'B.3.2','taxonomy' => '4','name' => 'Elaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, sécurité et protection des données, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '100','fk_operational_competence' => '22','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '101','fk_operational_competence' => '22','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '102','fk_operational_competence' => '23','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '103','fk_operational_competence' => '23','symbol' => 'C.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '104','fk_operational_competence' => '23','symbol' => 'C.1.3','taxonomy' => '4','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '105','fk_operational_competence' => '23','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '106','fk_operational_competence' => '23','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '107','fk_operational_competence' => '24','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '108','fk_operational_competence' => '24','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '109','fk_operational_competence' => '24','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '110','fk_operational_competence' => '24','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex.sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '111','fk_operational_competence' => '24','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes','archive' => NULL), + array('id' => '112','fk_operational_competence' => '25','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '113','fk_operational_competence' => '25','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '114','fk_operational_competence' => '25','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '115','fk_operational_competence' => '25','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '116','fk_operational_competence' => '26','symbol' => 'C.4.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '117','fk_operational_competence' => '26','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Elaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '118','fk_operational_competence' => '26','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '119','fk_operational_competence' => '26','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '120','fk_operational_competence' => '27','symbol' => 'D.1.1','taxonomy' => '4','name' => 'Introduction de nouveaux collaborateurs dans la structure TIC de l’entreprise, instruire les clients/collaborateurs lors de l’introduction de nouveaux matériels et logiciels, ainsi que de nouveaux outils','archive' => NULL), + array('id' => '121','fk_operational_competence' => '27','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Conseiller et soutenir les utilisateurs lors de la mise en œuvre d’automatisations bureautiques (par ex. mise en place de nouveaux outils, ou macros pour simplifier les tâches)','archive' => NULL), + array('id' => '122','fk_operational_competence' => '27','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Expliquer les particularités spécifiques à l’entreprise dans le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '123','fk_operational_competence' => '27','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Elaborer la documentation pour les utilisateurs','archive' => NULL), + array('id' => '124','fk_operational_competence' => '28','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Accueillir et saisir les demandes et problèmes des clients, poser les bonnes questions, afin de cerner et résoudre rapidement le problème','archive' => NULL), + array('id' => '125','fk_operational_competence' => '28','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Support téléphonique ou par accès distant, si nécessaire sur place chez les utilisateurs, poser des questions ciblées en cas de problèmes techniques','archive' => NULL), + array('id' => '126','fk_operational_competence' => '28','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Conseiller les utilisateurs sur la manière de résoudre un problème ou comment ils peuvent faciliter leurs activités avec de nouveaux outils','archive' => NULL), + array('id' => '127','fk_operational_competence' => '28','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Expliquer au client le comportement avec les données et les lignes directrices de la sécurité','archive' => NULL), + array('id' => '128','fk_operational_competence' => '29','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Elaborer un concept de tests comme base pour un développement efficace et l’assurance qualité d’une nouvelle application','archive' => NULL), + array('id' => '129','fk_operational_competence' => '29','symbol' => 'E.1.2','taxonomy' => '4','name' => 'Appliquer des méthodes pour la détermination de cas de tests','archive' => NULL), + array('id' => '130','fk_operational_competence' => '29','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Mettre à disposition, sauvegarder et documenter les données des tests','archive' => NULL), + array('id' => '131','fk_operational_competence' => '29','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Elaborer et exécuter des cas de tests (Blackbox), automatiser dans les cas possible','archive' => NULL), + array('id' => '132','fk_operational_competence' => '29','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Saisir les résultats dans un protocole de tests en vue d’une répétition','archive' => NULL), + array('id' => '133','fk_operational_competence' => '29','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Evaluer les résultats des tests et, le cas échéant, en déduire des mesures','archive' => NULL), + array('id' => '134','fk_operational_competence' => '29','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Garantir que toutes les fonctions ont été testées et que les éventuelles erreurs ont été corrigées','archive' => NULL), + array('id' => '135','fk_operational_competence' => '30','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Fonctionnalité conviviales, par ex. la même fonction déclenche toujours la même action, lorsque l’on feuillette, les informations introduites restent, etc','archive' => NULL), + array('id' => '136','fk_operational_competence' => '30','symbol' => 'E.2.2','taxonomy' => '4','name' => 'Evaluation des modes de déroulement et des applications appropriées','archive' => NULL), + array('id' => '137','fk_operational_competence' => '30','symbol' => 'E.2.3','taxonomy' => '4','name' => 'Programmer les applications en tenant compte des suites de tests, de débogage, de dépannage, de maintenance, etc. et documenter de manière continue','archive' => NULL), + array('id' => '138','fk_operational_competence' => '30','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Utiliser des standards et processus de développement','archive' => NULL), + array('id' => '139','fk_operational_competence' => '30','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Appliquer des méthodes de projets (PAP, Jackson, diagramme d‘état, diagramme de classe) et les Softwaredesign-Patterns','archive' => NULL), + array('id' => '140','fk_operational_competence' => '30','symbol' => 'E.2.6','taxonomy' => '3','name' => 'Respecter la convention des codes','archive' => NULL), + array('id' => '141','fk_operational_competence' => '30','symbol' => 'E.2.7','taxonomy' => '3','name' => 'Editer, documenter du code source (par ex. code en ligne, ..) et documenter en vue de faciliter la maintenance','archive' => NULL), + array('id' => '142','fk_operational_competence' => '30','symbol' => 'E.2.8','taxonomy' => '3','name' => 'Tester l’application et tout documenter','archive' => NULL), + array('id' => '143','fk_operational_competence' => '31','symbol' => 'E.3.1','taxonomy' => '4','name' => 'Prendre en compte des exigences standards et ergonomiques, voir et toucher. Atteindre un bon effet convivial lors de l’utilisation des nouvelles applications','archive' => NULL), + array('id' => '144','fk_operational_competence' => '31','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Prendre en compte les CD/CI (Corporate Design/Corporate identity)','archive' => NULL), + array('id' => '145','fk_operational_competence' => '31','symbol' => 'E.3.3','taxonomy' => '3','name' => 'Développer de manière conviviale, validation des champs de saisie, aide à la saisie des entrées','archive' => NULL), + array('id' => '146','fk_operational_competence' => '31','symbol' => 'E.3.4','taxonomy' => '3','name' => 'Codage GUI convivial, séparation des éléments utilisateurs du code','archive' => NULL), + array('id' => '147','fk_operational_competence' => '31','symbol' => 'E.3.5','taxonomy' => '3','name' => 'Prendre en compte les conditions de communication, par ex. communication asynchrone et veiller à de bonnes performances','archive' => NULL), + array('id' => '148','fk_operational_competence' => '31','symbol' => 'E.3.6','taxonomy' => '3','name' => 'Tester l’application de manière exhaustive et tout documenter','archive' => NULL), + array('id' => '149','fk_operational_competence' => '32','symbol' => 'E.4.1','taxonomy' => '4','name' => 'Choisir un modèle approprié de base de données (relationnelle, hiérarchique, etc.) et déterminer le produit (DBMS)','archive' => NULL), + array('id' => '150','fk_operational_competence' => '32','symbol' => 'E.4.2','taxonomy' => '3','name' => 'Elaborer le modèle physique (par ex. DDL, Referential Integrity, Constraints) et dénormaliser (Performance)','archive' => NULL), + array('id' => '151','fk_operational_competence' => '32','symbol' => 'E.4.3','taxonomy' => '3','name' => 'Exécuter les tests de charge et de performance, optimiser en conséquence et assurer la possibilité de maintenance','archive' => NULL), + array('id' => '152','fk_operational_competence' => '32','symbol' => 'E.4.4','taxonomy' => '3','name' => 'Assurer la sécurité des données (sauvegarde, disponibilité, etc.) et la protection des données (e.a. les droits d’accès)','archive' => NULL), + array('id' => '153','fk_operational_competence' => '32','symbol' => 'E.4.5','taxonomy' => '4','name' => 'Planifier et exécuter la migration de données','archive' => NULL), + array('id' => '154','fk_operational_competence' => '33','symbol' => 'E.5.1','taxonomy' => '3','name' => 'Déterminer les interfaces et technologies d‘accès (par ex. SQL statiques/dynamiques, ADO, HQL, OR-Mapper, Stored Procedures, etc.)','archive' => NULL), + array('id' => '155','fk_operational_competence' => '33','symbol' => 'E.5.2','taxonomy' => '3','name' => 'Appliquer le concept de transaction et programmer l’accès aux données','archive' => NULL), + array('id' => '156','fk_operational_competence' => '33','symbol' => 'E.5.3','taxonomy' => '3','name' => 'Vérifier l’accès des données en performance et exigences, le cas échéant, optimiser','archive' => NULL), + array('id' => '157','fk_operational_competence' => '33','symbol' => 'E.5.4','taxonomy' => '4','name' => 'Faire le test de remise et vérifier les résultats, au besoin, entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '158','fk_operational_competence' => '34','symbol' => 'F.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '159','fk_operational_competence' => '34','symbol' => 'F.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '160','fk_operational_competence' => '34','symbol' => 'F.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '161','fk_operational_competence' => '34','symbol' => 'F.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '162','fk_operational_competence' => '34','symbol' => 'F.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '163','fk_operational_competence' => '34','symbol' => 'F.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '164','fk_operational_competence' => '34','symbol' => 'F.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '165','fk_operational_competence' => '35','symbol' => 'F.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '166','fk_operational_competence' => '35','symbol' => 'F.2.2','taxonomy' => '3','name' => 'Elaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '167','fk_operational_competence' => '35','symbol' => 'F.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '168','fk_operational_competence' => '35','symbol' => 'F.2.4','taxonomy' => '3','name' => 'Elaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '169','fk_operational_competence' => '35','symbol' => 'F.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '170','fk_operational_competence' => '36','symbol' => 'F.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '171','fk_operational_competence' => '36','symbol' => 'F.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '177','fk_operational_competence' => '42','symbol' => 'A.1.1','taxonomy' => '4','name' => 'Etre capable de recevoir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie, ergonomie, optimisation de l’énergie)','archive' => NULL), + array('id' => '178','fk_operational_competence' => '42','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Évaluation et acquisition de matériel et logiciels appropriés, et les présenter à son supérieur','archive' => NULL), + array('id' => '179','fk_operational_competence' => '42','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Pouvoir entreprendre des configurations de base en tenant compte des mesures de sécurité et de protection des données y.c. le filtrage des contenus, malware, et virus), pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '180','fk_operational_competence' => '42','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Pouvoir insérer des composants TIC dans des réseaux selon directives et avec des connaissances sur les technologies actuelles','archive' => NULL), + array('id' => '181','fk_operational_competence' => '42','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Pouvoir installer, manuellement ou automatiquement, des applications selon directives du client en tenant compte des systèmes environnants et des aspects techniques des licences, ainsi que migrer des données','archive' => NULL), + array('id' => '182','fk_operational_competence' => '42','symbol' => 'A.1.6','taxonomy' => '3','name' => 'Mettre hors service des composants TIC et les éliminer professionnellement en tenant compte de la protection des données, des lignes directrices et des procédures d’entreprise','archive' => NULL), + array('id' => '183','fk_operational_competence' => '42','symbol' => 'A.1.7','taxonomy' => '3','name' => 'Contrôle des fonctions et remise au client (test final et protocole de remise)','archive' => NULL), + array('id' => '184','fk_operational_competence' => '42','symbol' => 'A.1.8','taxonomy' => '4','name' => 'Exécuter un contrôle fonctionnel pour l’assurance qualité, et remise de la nouvelle installation au client (contrôle final, protocole de remise)','archive' => NULL), + array('id' => '185','fk_operational_competence' => '43','symbol' => 'A.2.1','taxonomy' => '4','name' => 'Accueillir le mandat du client et planifier la mise en œuvre +(organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '186','fk_operational_competence' => '43','symbol' => 'A.2.2','taxonomy' => '4','name' => 'Choisir le matériel et logiciels appropriés en tenant compte +des directives matérielles (y compris, les exigences de la virtualisation), présenter des propositions de solutions au supérieur','archive' => NULL), + array('id' => '187','fk_operational_competence' => '43','symbol' => 'A.2.3','taxonomy' => '4','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau, respectivement les faire installer','archive' => NULL), + array('id' => '188','fk_operational_competence' => '43','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Acquérir le matériel et logiciels, entreprendre les configurations et services de base des serveurs (par ex. DHCP, DNS, accès distant, etc.) en tenant compte des mesures de sécurité et de protection des données, pouvoir prendre comme aide un ouvrage de référence avec un langage standard et une langue supplémentaire (D/E ou F/I/E)','archive' => NULL), + array('id' => '189','fk_operational_competence' => '43','symbol' => 'A.2.5','taxonomy' => '3','name' => 'Tester et documenter la configuration/disponibilité et la fonctionnalité des nouveaux matériels et logiciels installés','archive' => NULL), + array('id' => '190','fk_operational_competence' => '44','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Accueillir le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '191','fk_operational_competence' => '44','symbol' => 'A.3.2','taxonomy' => '4','name' => 'Evaluer et acquérir les composants réseaux appropriés en tenant compte des besoins en largeur de bande, des moyens, des prérequis et compatibilité du matériel. Présenter la solution au supérieur','archive' => NULL), + array('id' => '192','fk_operational_competence' => '44','symbol' => 'A.3.3','taxonomy' => '3','name' => 'Clarifier et régler la situation et l’accès, rack, énergie électrique, besoins de climatisation, UPS, connexion au réseau','archive' => NULL), + array('id' => '193','fk_operational_competence' => '44','symbol' => 'A.3.4','taxonomy' => '3','name' => ' Entreprendre la configuration de base (accès, mot clés, etc.), tester et documenter les résultats','archive' => NULL), + array('id' => '194','fk_operational_competence' => '45','symbol' => 'B.1.1','taxonomy' => '4','name' => 'Ingénierie des besoins: reconnaître et classer les besoins du client y.c. de la sécurité, transférer sur la topologie du réseau en tenant compte des avantages et inconvénients d’une solution, possibilité d’extension, maintenance, prix, distance, etc','archive' => NULL), + array('id' => '195','fk_operational_competence' => '45','symbol' => 'B.1.2','taxonomy' => '4','name' => 'Planification et concept de la structure réseau appropriée (Provider, WLAN, Switch, Router etc.) en tenant compte des besoins en largeur de bande, des médias, de la disponibilité et des services (Voice, unified Communication, Video, etc.), présenter la solution au supérieur','archive' => NULL), + array('id' => '196','fk_operational_competence' => '45','symbol' => 'B.1.3','taxonomy' => '3','name' => 'Installer, mettre en réseau et configurer des composants (par ex. VLAN, Routing)','archive' => NULL), + array('id' => '197','fk_operational_competence' => '45','symbol' => 'B.1.4','taxonomy' => '3','name' => 'Visualiser et documenter les réseaux et leur topologie','archive' => NULL), + array('id' => '198','fk_operational_competence' => '46','symbol' => 'B.2.1','taxonomy' => '3','name' => 'Reconnaître et évaluer les critères de sécurité en tenant compte des besoins du client et de l‘environnement','archive' => NULL), + array('id' => '199','fk_operational_competence' => '46','symbol' => 'B.2.2','taxonomy' => '3','name' => 'Concevoir des mesures de sécurité dans le réseau afin de minimiser les risques (filtrage MAC, malware/virus, VLAN, VPN y.c. le cryptage, security-gateways, contrôles des accès), planifier la mise en œuvre','archive' => NULL), + array('id' => '200','fk_operational_competence' => '46','symbol' => 'B.2.3','taxonomy' => '3','name' => 'Mettre en œuvre les mesures de sécurité et tester leurs fonctionnalités','archive' => NULL), + array('id' => '201','fk_operational_competence' => '46','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Documenter la solution et élaborer le mode d’emploi utilisateurs','archive' => NULL), + array('id' => '202','fk_operational_competence' => '47','symbol' => 'B.3.1','taxonomy' => '5','name' => 'Surveiller la performance, la sécurité, la disponibilité, les accès (IDS ou accès des personnes), contenu des données, journaux log, analyser et proposer des mesures avec des outils appropriés (Realtime-Monitoring ou contrôles périodiques)','archive' => NULL), + array('id' => '203','fk_operational_competence' => '47','symbol' => 'B.3.2','taxonomy' => '5','name' => 'Proposer des scénarios (incl. pour des situations extrêmes et de secours) et planifier les étapes nécessaires d‘amélioration','archive' => NULL), + array('id' => '204','fk_operational_competence' => '47','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Mettre en œuvre des adaptations dans le réseau (incl. mise en service de NMS), documenter celles-ci et vérifier leur efficacité','archive' => NULL), + array('id' => '205','fk_operational_competence' => '48','symbol' => 'B.4.1','taxonomy' => '5','name' => 'Concevoir et évaluer des systèmes de sauvegarde de données en tenant compte des besoins du client, des dispositions juridiques, des besoins en sécurité et protection des données, du réemploi (même à long termes, par ex. 20 ans) ainsi que de l’environnement','archive' => NULL), + array('id' => '206','fk_operational_competence' => '48','symbol' => 'B.4.2','taxonomy' => '5','name' => 'Planifier et implémenter des systèmes de sauvegarde incl. des solutions de backup','archive' => NULL), + array('id' => '207','fk_operational_competence' => '48','symbol' => 'B.4.3','taxonomy' => '3','name' => 'Tester l’installation (test fonctionnel et de remise) et documenter celle-ci ainsi que les résultats','archive' => NULL), + array('id' => '208','fk_operational_competence' => '49','symbol' => 'C.1.1','taxonomy' => '4','name' => 'Accueillir, comprendre, planifier et mettre en œuvre un mandat client (organisation, méthodologie)','archive' => NULL), + array('id' => '209','fk_operational_competence' => '49','symbol' => 'C.1.2','taxonomy' => '4','name' => 'Concept des droits d’accès y.c. élaborer le partage en tenant compte des exigences de la communication en réseau (applications d’impression, de téléphonie, VPN, spécifiques à l’entreprise)','archive' => NULL), + array('id' => '210','fk_operational_competence' => '49','symbol' => 'C.1.3','taxonomy' => '3','name' => 'Installer, mettre en œuvre et ajuster aux spécificités du client un service d’annuaire en tenant compte de la protection et de la sécurité des données ainsi que des conditions d’accès','archive' => NULL), + array('id' => '211','fk_operational_competence' => '49','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité','archive' => NULL), + array('id' => '212','fk_operational_competence' => '50','symbol' => 'C.2.1','taxonomy' => '5','name' => 'Enregistrer le mandat du client et planifier la mise en œuvre (organisation, méthodes de travail, optimisation de l’énergie)','archive' => NULL), + array('id' => '213','fk_operational_competence' => '50','symbol' => 'C.2.2','taxonomy' => '4','name' => 'Élaborer le concept en tenant compte de toutes les dépendances des services disponibles, de la performance et des interfaces incl. les questions de droits d’accès','archive' => NULL), + array('id' => '214','fk_operational_competence' => '50','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Installer les services (par ex. serveurs web, de bases de données, de terminaux, d‘imprimantes, etc.) en tenant compte des précautions de sécurité incl. les mesures de protection antivirus','archive' => NULL), + array('id' => '215','fk_operational_competence' => '50','symbol' => 'C.2.4','taxonomy' => '3','name' => 'Tester la configuration, la disponibilité et la fonctionnalité du nouveau matériel et logiciels installés, verbaliser ces tests dans la documentation','archive' => NULL), + array('id' => '216','fk_operational_competence' => '51','symbol' => 'C.3.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '217','fk_operational_competence' => '51','symbol' => 'C.3.2','taxonomy' => '4','name' => 'Élaborer un concept de la performance et des interfaces en tenant compte de toutes les dépendances des services disponibles, y.c. les questions de droits d’accès et logiciels appropriés','archive' => NULL), + array('id' => '218','fk_operational_competence' => '51','symbol' => 'C.3.3','taxonomy' => '3','name' => 'Installer les services de communication et groupeware (par ex. serveur de messagerie, serveur VOIP, DMS, etc.) en tenant compte des précautions nécessaires de sécurité (protection virale, filtrage des contenus et spams), de performance et de disponibilité','archive' => NULL), + array('id' => '219','fk_operational_competence' => '51','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Tester et documenter la configuration, la disponibilité, la fonctionnalité du matériel et logiciels nouvellement installés','archive' => NULL), + array('id' => '220','fk_operational_competence' => '52','symbol' => 'C.4.1','taxonomy' => '5','name' => 'Conseil à la clientèle en regard de la sécurité et l’archivage des données, recueillir et analyser les besoins du client et, au besoin, aviser sur les effets du risque','archive' => NULL), + array('id' => '221','fk_operational_competence' => '52','symbol' => 'C.4.2','taxonomy' => '4','name' => 'Élaboration d’un concept en tenant compte de toutes les contraintes telles que les besoins de l’entreprise, les règles légales, les us et coutumes de la branche, les médias, les performances et la durée de vie','archive' => NULL), + array('id' => '222','fk_operational_competence' => '52','symbol' => 'C.4.3','taxonomy' => '3','name' => 'Installation des systèmes en tenant compte des précautions nécessaires de sécurité (droits d’accès, sécurité des données, reprise après sinistre), performance, et installer la disponibilité','archive' => NULL), + array('id' => '223','fk_operational_competence' => '52','symbol' => 'C.4.4','taxonomy' => '3','name' => 'Tester, valider et exécuter la restauration des données, documenter le travail','archive' => NULL), + array('id' => '224','fk_operational_competence' => '53','symbol' => 'C.5.1','taxonomy' => '4','name' => 'Accueillir, comprendre et planifier un mandat du client, planifier la mise en œuvre (organisation, méthodologie)','archive' => NULL), + array('id' => '225','fk_operational_competence' => '53','symbol' => 'C.5.2','taxonomy' => '4','name' => 'Élaborer un concept en tenant compte des offres de fournisseurs existants, dépendances des services disponibles, de la performance et des interfaces, incl. les questions de droits d’accès','archive' => NULL), + array('id' => '226','fk_operational_competence' => '53','symbol' => 'C.5.3','taxonomy' => '3','name' => 'Installer les services réseaux (par ex. les services cloud, CMS, serveurs web et d‘applications, etc.) incl. les langages des scripts ou de programmation côté serveur en tenant compte des précautions nécessaires de sécurité, de la performance et de la disponibilité','archive' => NULL), + array('id' => '227','fk_operational_competence' => '53','symbol' => 'C.5.4','taxonomy' => '3','name' => 'Tester les fonctionnalités en charge, resp. sous des conditions aggravées, verbaliser la solution et les résultats des tests','archive' => NULL), + array('id' => '228','fk_operational_competence' => '54','symbol' => 'D.1.1','taxonomy' => '3','name' => 'Lire et interpréter des schémas (plan électrique, plan réseau) et pouvoir documenter les modifications exécutées','archive' => NULL), + array('id' => '229','fk_operational_competence' => '54','symbol' => 'D.1.2','taxonomy' => '3','name' => 'Surveiller et administrer le réseau (monitoring: performance, flux de données, stabilité, malware, firewall, etc.)','archive' => NULL), + array('id' => '230','fk_operational_competence' => '54','symbol' => 'D.1.3','taxonomy' => '5','name' => 'Poursuivre les incohérences et, le cas échéant, proposer des mesures appropriées, resp. les prendre selon les directives de l’entreprise','archive' => NULL), + array('id' => '231','fk_operational_competence' => '54','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Concevoir et réaliser des extensions réseau en tenant compte des coûts d’acquisition et d’exploitation et éliminer dans les règles les appareils remplacés','archive' => NULL), + array('id' => '232','fk_operational_competence' => '54','symbol' => 'D.1.5','taxonomy' => '3','name' => 'Découvrir et éliminer toutes les pannes possibles de connexion (switchs, routeurs, etc.), y.c. mettre en œuvre des scénarios de secours selon checklist','archive' => NULL), + array('id' => '233','fk_operational_competence' => '54','symbol' => 'D.1.6','taxonomy' => '3','name' => 'Tester la fonctionnalité, la performance, la sécurité et documenter les résultats','archive' => NULL), + array('id' => '234','fk_operational_competence' => '55','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Exécuter les tâches régulières de maintenance, d’entretien et de surveillance (journalières, hebdomadaires, mensuelles, etc.), y.c. l’exécution régulière de mise à jour, contrôle de génération, ressources selon un déroulement par checklist','archive' => NULL), + array('id' => '235','fk_operational_competence' => '55','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Assurer la sécurité système et d’exploitation. Respecter les droits, vérifier les règles d’authentification et d’autorisation et les mettre en œuvre de manière conséquente','archive' => NULL), + array('id' => '236','fk_operational_competence' => '55','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Surveiller des services de serveurs (par ex. gestion des logfiles, queues d‘impression, messagerie/données, etc.) et entreprendre les mesures nécessaires','archive' => NULL), + array('id' => '237','fk_operational_competence' => '55','symbol' => 'D.2.4','taxonomy' => '3','name' => 'Installation et configuration des services de communication et groupeware (par ex. sharepoint, Lotus Notes, etc.), gestion des délais, des tâches et des documents','archive' => NULL), + array('id' => '238','fk_operational_competence' => '55','symbol' => 'D.2.5','taxonomy' => '3','name' => 'Tester et documenter la fonctionnalité, les performances et la sécurité des systèmes. ','archive' => NULL), + array('id' => '239','fk_operational_competence' => '56','symbol' => 'D.3.1','taxonomy' => '3','name' => 'Gérer et distribuer des licences, mises à jour, maintenir la liste des générations de logiciels, actualiser localement les logiciels de sécurité','archive' => NULL), + array('id' => '240','fk_operational_competence' => '56','symbol' => 'D.3.2','taxonomy' => '3','name' => 'Administrer le cycle de vie des appareils en tenant compte des aspects économiques et de durabilité. En cas de besoin, échanger les appareils','archive' => NULL), + array('id' => '241','fk_operational_competence' => '56','symbol' => 'D.3.3','taxonomy' => '3','name' => 'Entreprendre des extensions sur le matériel et logiciels, y compris les adaptations de configurations en tenant compte de toutes les implications sur les systèmes','archive' => NULL), + array('id' => '242','fk_operational_competence' => '56','symbol' => 'D.3.4','taxonomy' => '3','name' => 'Informer et instruire les utilisateurs','archive' => NULL), + array('id' => '243','fk_operational_competence' => '57','symbol' => 'D.4.1','taxonomy' => '3','name' => 'Analyser le mandat ou les besoins (utilisateurs/système), enregistrer le processus et en prendre acte','archive' => NULL), + array('id' => '244','fk_operational_competence' => '57','symbol' => 'D.4.2','taxonomy' => '4','name' => 'Développer une solution et la présenter au supérieur ou à l’utilisateur','archive' => NULL), + array('id' => '245','fk_operational_competence' => '57','symbol' => 'D.4.3','taxonomy' => '3','name' => 'Automatiser des processus (par ex. déploiement de logiciels, processus de serveurs, envoi automatisé de messages, etc.) à l’aide d’outils appropriés (par ex. scripts)','archive' => NULL), + array('id' => '246','fk_operational_competence' => '57','symbol' => 'D.4.4','taxonomy' => '3','name' => 'Assurer que le processus automatisé remplisse la totalité des fonctionnalités en tenant compte de la couverture de tous les systèmes environnants, documenter les fonctionnalités','archive' => NULL), + array('id' => '247','fk_operational_competence' => '58','symbol' => 'D.5.1','taxonomy' => '4','name' => 'Clarifier les possibilités et la faisabilité de systèmes de déploiement de logiciels et évaluer les offres','archive' => NULL), + array('id' => '248','fk_operational_competence' => '58','symbol' => 'D.5.2','taxonomy' => '4','name' => 'Clarifier les conditions d’installation et leur compatibilité avec les systèmes environnants, proposer une solution','archive' => NULL), + array('id' => '249','fk_operational_competence' => '58','symbol' => 'D.5.3','taxonomy' => '3','name' => 'Mettre en service des systèmes de déploiement possibles dans un environnement de test, tester et documenter les fonctionnalités','archive' => NULL), + array('id' => '250','fk_operational_competence' => '58','symbol' => 'D.5.4','taxonomy' => '3','name' => 'Exécuter le déploiement des logiciels, surveiller et documenter celui-ci','archive' => NULL), + array('id' => '251','fk_operational_competence' => '58','symbol' => 'D.5.5','taxonomy' => '3','name' => 'Informer les utilisateurs selon les besoins','archive' => NULL), + array('id' => '252','fk_operational_competence' => '59','symbol' => 'E.1.1','taxonomy' => '3','name' => 'Analyser et comprendre l’étendue de travail, élaborer une planification des travaux','archive' => NULL), + array('id' => '253','fk_operational_competence' => '59','symbol' => 'E.1.2','taxonomy' => '3','name' => 'Prendre les mesures de préparation en vue de la résolution, élaborer les checklist et la planification, documenter le déroulement, élaborer la liste de matériel, etc','archive' => NULL), + array('id' => '254','fk_operational_competence' => '59','symbol' => 'E.1.3','taxonomy' => '3','name' => 'Acquérir et ordonner du matériel, le préparer pour l’installation, etc. y.c. les solutions de secours','archive' => NULL), + array('id' => '255','fk_operational_competence' => '59','symbol' => 'E.1.4','taxonomy' => '3','name' => 'Exécuter les tâches, conformément à la planification, efficacement de pas à pas','archive' => NULL), + array('id' => '256','fk_operational_competence' => '59','symbol' => 'E.1.5','taxonomy' => '3','name' => 'Planifier et exécuter des tests, lesquels seront documentés dans l’inventaire des nouvelles installations','archive' => NULL), + array('id' => '257','fk_operational_competence' => '59','symbol' => 'E.1.6','taxonomy' => '3','name' => 'Remettre l’installation et faire signer le protocole de remise au client','archive' => NULL), + array('id' => '258','fk_operational_competence' => '59','symbol' => 'E.1.7','taxonomy' => '3','name' => 'Instruire les utilisateurs sur les modifications de leurs applications','archive' => NULL), + array('id' => '259','fk_operational_competence' => '59','symbol' => 'E.1.8','taxonomy' => '3','name' => 'Retourner le matériel et appareils non nécessaires, éliminer correctement le matériel inutilisable','archive' => NULL), + array('id' => '260','fk_operational_competence' => '60','symbol' => 'E.2.1','taxonomy' => '4','name' => 'Analyser et comprendre l’étendue de travail de sa propre contribution, élaborer une planification des travaux en tenant compte des ressources disponibles','archive' => NULL), + array('id' => '261','fk_operational_competence' => '60','symbol' => 'E.2.2','taxonomy' => '3','name' => 'Élaborer le mandat selon les directives en termes de délai et dans le cadre du budget, subdiviser les résultats dans le projet global','archive' => NULL), + array('id' => '262','fk_operational_competence' => '60','symbol' => 'E.2.3','taxonomy' => '3','name' => 'Informer constamment la direction de projet de sa propre initiative sur les modifications et déviations','archive' => NULL), + array('id' => '263','fk_operational_competence' => '60','symbol' => 'E.2.4','taxonomy' => '3','name' => 'Élaborer la documentation du projet, les rapports, la correspondance du projet, etc. selon directives','archive' => NULL), + array('id' => '264','fk_operational_competence' => '60','symbol' => 'E.2.5','taxonomy' => '3','name' => 'Mettre à disposition des collègues ses propres expériences issues du projet','archive' => NULL), + array('id' => '265','fk_operational_competence' => '61','symbol' => 'E.3.1','taxonomy' => '3','name' => 'Communiquer dans le cadre du projet avec toutes les personnes concernées par le biais de contacts réguliers et discussions sur l’avancement des travaux, les interfaces, les nouvelles solutions, les problèmes','archive' => NULL), + array('id' => '266','fk_operational_competence' => '61','symbol' => 'E.3.2','taxonomy' => '3','name' => 'Entretiens par des contacts réguliers et discussions avec les clients, respectivement le mandant, sur les souhaits, les questions et besoins, vérifier à l’aide de questions ciblées si les souhaits ont été correctement et précisément saisis','archive' => NULL), + array('id' => '267','fk_operational_competence' => '62','symbol' => 'A.1.1','taxonomy' => '2','name' => 'Expliquent les tâches et fonctions des systèmes d’exploitation courants','archive' => NULL), + array('id' => '268','fk_operational_competence' => '62','symbol' => 'A.1.2','taxonomy' => '4','name' => 'Installent et configurent les systèmes d’exploitation courants selon directives, cernent rapidement les problèmes et les résolvent ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '269','fk_operational_competence' => '62','symbol' => 'A.1.3','taxonomy' => '3','name' => 'Installent et configurent des appareils périphériques et leurs extensions','archive' => NULL), + array('id' => '270','fk_operational_competence' => '62','symbol' => 'A.1.4','taxonomy' => '3','name' => 'Installent des terminaux sur place selon les spécifications de l’entreprise et du point de vue de l’efficacité énergétique, la sécurité du travail, la protection de la santé et de l’environnement','archive' => NULL), + array('id' => '271','fk_operational_competence' => '62','symbol' => 'A.1.5','taxonomy' => '3','name' => 'Mettent en œuvre des prescriptions et des processus dans le cadre de la gestion de la durée de vie des produits','archive' => NULL), + array('id' => '272','fk_operational_competence' => '62','symbol' => 'A.1.6','taxonomy' => '1','name' => 'Exécutent des mises à jour de logiciel d’entreprise selon guides et informations des producteurs','archive' => NULL), + array('id' => '273','fk_operational_competence' => '62','symbol' => 'A.1.7','taxonomy' => '3','name' => 'Appliquent des commandes spécifiques sur des systèmes d’exploitation courants','archive' => NULL), + array('id' => '274','fk_operational_competence' => '62','symbol' => 'A.1.8','taxonomy' => '3','name' => 'Trient les déchets et appareils hors service, les dirigent vers le recyclage / réutilisation selon l’état technique','archive' => NULL), + array('id' => '275','fk_operational_competence' => '63','symbol' => 'A.2.1','taxonomy' => '3','name' => 'Installent et configurent des applications standards et les administrent','archive' => NULL), + array('id' => '276','fk_operational_competence' => '63','symbol' => 'A.2.2','taxonomy' => '2','name' => 'Actualisent les logiciels existants avec une version actuelle','archive' => NULL), + array('id' => '277','fk_operational_competence' => '63','symbol' => 'A.2.3','taxonomy' => '3','name' => 'Décrivent les diverses variantes de licences','archive' => NULL), + array('id' => '278','fk_operational_competence' => '63','symbol' => 'A.2.4','taxonomy' => '3','name' => 'Appliquent les processus de la gestion des licences','archive' => NULL), + array('id' => '279','fk_operational_competence' => '64','symbol' => 'A.3.1','taxonomy' => '4','name' => 'Exécutent des tests de fonctions selon directives et évaluent les résultats','archive' => NULL), + array('id' => '280','fk_operational_competence' => '64','symbol' => 'A.3.2','taxonomy' => '3','name' => 'Adaptent les tests de fonctions existants sur la base de nouvelles conditions cadres','archive' => NULL), + array('id' => '281','fk_operational_competence' => '64','symbol' => 'A.3.3','taxonomy' => '4','name' => 'Élaborent et documentent les déroulements de tests de fonctions et contrôlent ceux-ci sur leur exactitude','archive' => NULL), + array('id' => '282','fk_operational_competence' => '65','symbol' => 'A.4.1','taxonomy' => '3','name' => 'Appliquent des scripts et contrôlent leur exécution','archive' => NULL), + array('id' => '283','fk_operational_competence' => '65','symbol' => 'A.4.2','taxonomy' => '4','name' => 'Entreprennent des adaptations sur la fonctionnalité du script','archive' => NULL), + array('id' => '284','fk_operational_competence' => '65','symbol' => 'A.4.3','taxonomy' => '3','name' => 'Programment des scripts simples selon directives','archive' => NULL), + array('id' => '285','fk_operational_competence' => '66','symbol' => 'B.1.1','taxonomy' => '2','name' => 'Expliquent les tâches et fonctions de chaque composant d’un réseau (switch, routeur, firewall, serveur, système de mémorisation, points d’accès WLAN)','archive' => NULL), + array('id' => '286','fk_operational_competence' => '66','symbol' => 'B.1.2','taxonomy' => '4','name' => 'Intègrent les terminaux ICT utilisateurs (PC, notebook, appareils mobiles, imprimantes, appareils multifonctionnels et appareils de télécommunication) dans un environnement réseau existant','archive' => NULL), + array('id' => '287','fk_operational_competence' => '66','symbol' => 'B.1.3','taxonomy' => '4','name' => 'Décèlent les pannes et peuvent les cerner dans un environnement réseau, les résolvent ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '288','fk_operational_competence' => '66','symbol' => 'B.1.4','taxonomy' => '2','name' => 'Instruisent les utilisateurs lors de l’installation et l’utilisation d’applications et services Cloud','archive' => NULL), + array('id' => '289','fk_operational_competence' => '67','symbol' => 'B.2.1','taxonomy' => '3','name' => 'Relient les logiciels du terminal ICT utilisateurs avec les services concernés du serveur','archive' => NULL), + array('id' => '290','fk_operational_competence' => '67','symbol' => 'B.2.2','taxonomy' => '2','name' => 'Attribuent les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) à leurs fonctions dans le réseau et expliquent leurs tâches/fonctions','archive' => NULL), + array('id' => '291','fk_operational_competence' => '67','symbol' => 'B.2.3','taxonomy' => '4','name' => 'Décèlent parmi les services serveurs usuels (DNS, DHCP, services d‘annuaire, serveurs Groupware) les pannes et peuvent les résoudre ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '292','fk_operational_competence' => '67','symbol' => 'B.2.4','taxonomy' => '3','name' => 'Utilisent et configurent les services serveurs mis en œuvre dans l’entreprise sur les terminaux ICT utilisateurs (PC, notebook, tablettes, smartphones)','archive' => NULL), + array('id' => '293','fk_operational_competence' => '68','symbol' => 'B.3.1','taxonomy' => '2','name' => 'Décrivent les bases de la sécurité informatique (sécurité des données, protection des données, disponibilité) et expliquent les possibilités de mesures de protection contre les menaces dans le domaine des ICT','archive' => NULL), + array('id' => '294','fk_operational_competence' => '68','symbol' => 'B.3.2','taxonomy' => '3','name' => 'Installent et configurent les logiciels de protection usuels sur les terminaux ICT utilisateurs et les maintiennent au niveau actuel','archive' => NULL), + array('id' => '295','fk_operational_competence' => '68','symbol' => 'B.3.3','taxonomy' => '3','name' => 'Protègent les terminaux ICT utilisateurs des dangers actuels sur la base des directives de l’entreprise','archive' => NULL), + array('id' => '296','fk_operational_competence' => '68','symbol' => 'B.3.4','taxonomy' => '3','name' => 'Appliquent les directives et processus de sécurité internes à l’entreprise de manière conforme à la situation','archive' => NULL), + array('id' => '297','fk_operational_competence' => '68','symbol' => 'B.3.5','taxonomy' => '3','name' => 'Appliquent les procédures nécessaires pour déceler et éliminer les attaques de logiciels malveillants sur les terminaux ICT utilisateurs','archive' => NULL), + array('id' => '298','fk_operational_competence' => '69','symbol' => 'C.1.1','taxonomy' => '3','name' => 'Décrivent les éléments du contenu d’une instruction et les mettent en œuvre dans la pratique','archive' => NULL), + array('id' => '299','fk_operational_competence' => '69','symbol' => 'C.1.2','taxonomy' => '2','name' => 'Préparent systématiquement des présentations et décrivent les facteurs de succès (rhétorique, langage corporel) lors de leur exécution','archive' => NULL), + array('id' => '300','fk_operational_competence' => '69','symbol' => 'C.1.3','taxonomy' => '3','name' => 'Appliquent les logiciels appropriés pour la réalisation de présentations','archive' => NULL), + array('id' => '301','fk_operational_competence' => '69','symbol' => 'C.1.4','taxonomy' => '3','name' => 'Utilisent divers médias et moyens d’aide, afin de soutenir les présentations','archive' => NULL), + array('id' => '302','fk_operational_competence' => '69','symbol' => 'C.1.5','taxonomy' => '3','name' => 'Mettent en œuvre les instructions/présentations avec toutes les mesures nécessaires (contenus, structuration, préparation, exécution, approfondissement, préparation des ressources nécessaires, etc.)','archive' => NULL), + array('id' => '303','fk_operational_competence' => '70','symbol' => 'C.2.1','taxonomy' => '3','name' => 'Formulent des objectifs simples et clairs, et peuvent interpréter des objectifs prescrits','archive' => NULL), + array('id' => '304','fk_operational_competence' => '70','symbol' => 'C.2.2','taxonomy' => '3','name' => 'Appliquent des directives et modèles de documentation de l‘entreprise','archive' => NULL), + array('id' => '305','fk_operational_competence' => '70','symbol' => 'C.2.3','taxonomy' => '3','name' => 'Acquièrent, avec les moyens mis à disposition, les informations nécessaires','archive' => NULL), + array('id' => '306','fk_operational_competence' => '70','symbol' => 'C.2.4','taxonomy' => '4','name' => 'Trient l’indispensable du superflu et fixent les bonnes priorités','archive' => NULL), + array('id' => '307','fk_operational_competence' => '70','symbol' => 'C.2.5','taxonomy' => '3','name' => 'Élaborent des modes d’emploi compréhensibles et clairement structurés','archive' => NULL), + array('id' => '308','fk_operational_competence' => '70','symbol' => 'C.2.6','taxonomy' => '3','name' => 'Utilisent des techniques appropriées de visualisation afin de présenter les déclarations de manière compréhensible et efficace','archive' => NULL), + array('id' => '309','fk_operational_competence' => '70','symbol' => 'C.2.7','taxonomy' => '3','name' => 'Appliquent les outils logiciels appropriés pour la réalisation de la documentation','archive' => NULL), + array('id' => '310','fk_operational_competence' => '71','symbol' => 'C.3.1','taxonomy' => '3','name' => 'Saisissent les exigences du client ainsi que la réalité de la situation, et entament les étapes suivantes de l‘acquisition','archive' => NULL), + array('id' => '311','fk_operational_competence' => '71','symbol' => 'C.3.2','taxonomy' => '3','name' => 'Acquièrent, de la part du client et de l’objet à acquérir, les informations importantes pour la situation donnée','archive' => NULL), + array('id' => '312','fk_operational_competence' => '71','symbol' => 'C.3.3','taxonomy' => '4','name' => 'Comparent les données acquises et confrontent les avantages et inconvénients des divers produits du point de vue économique, écologique et technique, puis les documentent','archive' => NULL), + array('id' => '313','fk_operational_competence' => '71','symbol' => 'C.3.4','taxonomy' => '3','name' => 'Présentent au client des recommandations sous forme verbales ou écrites, et les justifient','archive' => NULL), + array('id' => '314','fk_operational_competence' => '71','symbol' => 'C.3.5','taxonomy' => '3','name' => 'Déroulent les activités administratives d’un processus d’acquisition (offres, confirmation du mandat, procès-verbal du travail, facture, etc.)','archive' => NULL), + array('id' => '315','fk_operational_competence' => '72','symbol' => 'D.1.1','taxonomy' => '2','name' => 'Prennent note des demandes ou besoins des clients qui peuvent se présenter et déterminent, par des questions ciblées, le problème','archive' => NULL), + array('id' => '316','fk_operational_competence' => '72','symbol' => 'D.1.2','taxonomy' => '4','name' => 'Cernent rapidement les problèmes et sont capables de les éliminer ou les transmettent à l’instance correcte','archive' => NULL), + array('id' => '317','fk_operational_competence' => '72','symbol' => 'D.1.3','taxonomy' => '3','name' => 'Entament des préparations pour éluder les questions, élaborent des checklists et estiment l‘investissement','archive' => NULL), + array('id' => '318','fk_operational_competence' => '72','symbol' => 'D.1.4','taxonomy' => '3','name' => 'Mettent en œuvre efficacement et de manière structurée les mandats en respectant les prescriptions','archive' => NULL), + array('id' => '319','fk_operational_competence' => '72','symbol' => 'D.1.5','taxonomy' => '3','name' => 'Documentent le déroulement afin que l’utilisateur et/ou l’équipe puisse saisir l‘état des travaux','archive' => NULL), + array('id' => '320','fk_operational_competence' => '72','symbol' => 'D.1.6','taxonomy' => '2','name' => 'Informent les clients sur l’état des travaux et, selon besoins, instruisent les clients afin de résoudre les problèmes','archive' => NULL), + array('id' => '321','fk_operational_competence' => '72','symbol' => 'D.1.7','taxonomy' => '3','name' => 'Appliquent correctement les termes techniques et conformément à la situation lors de la communication avec l’équipe, les partenaires de l’organisation ICT et les clients','archive' => NULL), + array('id' => '322','fk_operational_competence' => '73','symbol' => 'D.2.1','taxonomy' => '3','name' => 'Appliquent diverses techniques de communication, afin de traiter les problèmes de manière ciblée','archive' => NULL), + array('id' => '323','fk_operational_competence' => '73','symbol' => 'D.2.2','taxonomy' => '3','name' => 'Appliquent des modèles de communication dans la collaboration avec des clients et leur propre équipe','archive' => NULL), + array('id' => '324','fk_operational_competence' => '73','symbol' => 'D.2.3','taxonomy' => '3','name' => 'Utilisent les retours afin de s’engager et d’apporter une contribution pour le succès de l’équipe','archive' => NULL), + array('id' => '325','fk_operational_competence' => '73','symbol' => 'D.2.4','taxonomy' => '2','name' => 'Expliquent le processus dynamique de l’équipe (rôles et normes) et décrivent les diverses phases de développement de l’équipe','archive' => NULL), + array('id' => '326','fk_operational_competence' => '73','symbol' => 'D.2.5','taxonomy' => '2','name' => 'Décrivent les causes et la dynamique des conflits','archive' => NULL), + array('id' => '327','fk_operational_competence' => '73','symbol' => 'D.2.6','taxonomy' => '4','name' => 'Décèlent à temps les situations de conflits et prend les mesures en conséquence','archive' => NULL), + array('id' => '328','fk_operational_competence' => '74','symbol' => 'D.3.1','taxonomy' => '3','name' => 'Appliquent un modèle (méthode des 6 pas) pour la mise en œuvre d’une action exhaustive','archive' => NULL), + array('id' => '329','fk_operational_competence' => '74','symbol' => 'D.3.2','taxonomy' => '2','name' => 'Décrivent comment des projets sont planifiés, structurés efficacement, démarrés, exécutés et clos','archive' => NULL), + array('id' => '330','fk_operational_competence' => '74','symbol' => 'D.3.3','taxonomy' => '3','name' => 'Élaborent des plans pour un déroulement systématique des mandats en tenant compte des ressources, des délais, des problèmes et des divisions du travail','archive' => NULL), + array('id' => '331','fk_operational_competence' => '74','symbol' => 'D.3.4','taxonomy' => '3','name' => 'Utilisent de manière ciblée des sources d’informations et acquièrent les informations manquantes','archive' => NULL), + array('id' => '332','fk_operational_competence' => '74','symbol' => 'D.3.5','taxonomy' => '3','name' => 'Appliquent des méthodes et principes pour l’amélioration de l’efficacité du travail dans le cadre des travaux journaliers','archive' => NULL) + ); + foreach ($objective as $objectivee){ + $this->db->table('objective')->insert($objectivee); } } diff --git a/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php b/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php new file mode 100644 index 00000000..52772cd3 --- /dev/null +++ b/orif/plafor/Database/Seeds/addOperationalCompetences2021Datas.php @@ -0,0 +1,98 @@ + '75','fk_competence_domain' => '21','name' => 'Clarifier et documenter les besoins des parties prenantes dans le cadre d’un projet ICT','symbol' => 'A1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '76','fk_competence_domain' => '21','name' => 'Définir un modèle de procédure pour un projet ICT','symbol' => 'A2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '77','fk_competence_domain' => '21','name' => 'Rechercher des informations sur des solutions ICT et sur les innovations','symbol' => 'A3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '78','fk_competence_domain' => '21','name' => 'Planifier les projets ICT et les tâches selon un modèle de procédure','symbol' => 'A4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '79','fk_competence_domain' => '21','name' => 'Visualiser et présenter les variantes de solutions ICT','symbol' => 'A5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '80','fk_competence_domain' => '21','name' => 'Vérifier l’avancement des projets ICT et des tâches et en faire état selon le modèle de procédure','symbol' => 'A6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '81','fk_competence_domain' => '21','name' => 'Remettre la solution ICT au client et clôturer le projet','symbol' => 'A7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '82','fk_competence_domain' => '22','name' => 'Installer un PC monoposte','symbol' => 'B1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '83','fk_competence_domain' => '22','name' => 'Réceptionner et traiter des demandes d’assistance informatique complexes','symbol' => 'B2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '84','fk_competence_domain' => '22','name' => 'Conseiller les clients en matière de protection et de sécurité des données','symbol' => 'B3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '85','fk_competence_domain' => '22','name' => 'Analyser, visualiser et documenter les processus métier des clients','symbol' => 'B4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '86','fk_competence_domain' => '23','name' => 'Identifier et analyser les données et développer des modèles de données','symbol' => 'C1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '87','fk_competence_domain' => '23','name' => 'Mettre en œuvre des modèles de données dans un dispositif de stockage de données numériques','symbol' => 'C2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '88','fk_competence_domain' => '23','name' => 'Planifier, implé menter et documenter la sécurité et la protection des données pour des solutions ICT','symbol' => 'C3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '89','fk_competence_domain' => '23','name' => 'Traiter des données à partir de dispositifs de stockage de données numériques','symbol' => 'C4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '90','fk_competence_domain' => '24','name' => 'Recueillir, stan dardiser et automati^ser les processus ICT','symbol' => 'D1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '91','fk_competence_domain' => '24','name' => 'Définir le processus de livraison des solutions ICT','symbol' => 'D2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '92','fk_competence_domain' => '24','name' => 'Préparer la plateforme d’exécution des solutions ICT','symbol' => 'D3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '93','fk_competence_domain' => '24','name' => 'Mettre en service les solutions ICT','symbol' => 'D4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '94','fk_competence_domain' => '25','name' => 'Planifier et documenter les réseaux','symbol' => 'E1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '95','fk_competence_domain' => '25','name' => 'Sélectionner et mettre en service les composants du réseau','symbol' => 'E2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '96','fk_competence_domain' => '25','name' => 'Maintenir et développer les réseaux','symbol' => 'E3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '97','fk_competence_domain' => '25','name' => 'Implémenter, documenter et vérifier la sécurité des réseaux','symbol' => 'E4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '98','fk_competence_domain' => '25','name' => 'Analyser, opti miser et documenter la performance d’un réseau','symbol' => 'E5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '99','fk_competence_domain' => '25','name' => 'Surveiller les réseaux','symbol' => 'E6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '100','fk_competence_domain' => '26','name' => 'Planifier et documenter les systèmes de serveurs et leurs services','symbol' => 'F1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '101','fk_competence_domain' => '26','name' => 'Mettre en service les systèmes de serveurs','symbol' => 'F2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '102','fk_competence_domain' => '26','name' => 'Mettre en service les services du serveur','symbol' => 'F3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '103','fk_competence_domain' => '26','name' => 'Maintenir et administrer les systèmes de serveurs et leurs services','symbol' => 'F4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '104','fk_competence_domain' => '26','name' => 'Surveiller les systèmes de ser veurs et leurs ser^vices','symbol' => 'F5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '105','fk_competence_domain' => '26','name' => 'Implémenter, documenter et vérifier la sécurité des systèmes de serveurs et de leurs services','symbol' => 'F6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '106','fk_competence_domain' => '26','name' => 'Planifier et mettre en œuvre la disponibilité des systèmes de serveurs et de leurs services','symbol' => 'F7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '107','fk_competence_domain' => '26','name' => 'Etablir et mettre en œuvre des concepts de sauvegarde et d’archivage des données','symbol' => 'F8','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '108','fk_competence_domain' => '27','name' => 'Clarifier et documenter les besoins des parties prenantes dans le cadre d’un projet ICT','symbol' => 'A1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '109','fk_competence_domain' => '27','name' => 'Définir un modèle de procédure pour un projet ICT','symbol' => 'A2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '110','fk_competence_domain' => '27','name' => 'Rechercher des informations sur des solutions ICT et sur les innovations','symbol' => 'A3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '111','fk_competence_domain' => '27','name' => 'Planifier les projets ICT et les tâches selon un modèle de procédure','symbol' => 'A4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '112','fk_competence_domain' => '27','name' => 'Visualiser et présenter les variantes de solutions ICT','symbol' => 'A5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '113','fk_competence_domain' => '27','name' => 'Vérifier l’avancement des projets ICT et des tâches et en faire état selon le modèle de procédure','symbol' => 'A6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '114','fk_competence_domain' => '27','name' => 'Remettre la solution ICT au client et clôturer le projet','symbol' => 'A7','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '115','fk_competence_domain' => '28','name' => 'Installer un PC monoposte','symbol' => 'B1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '116','fk_competence_domain' => '28','name' => 'Réceptionner et traiter des demandes d’assistance informatique complexes','symbol' => 'B2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '117','fk_competence_domain' => '28','name' => 'Conseiller les clients en matière de protection et de sécurité des données','symbol' => 'B3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '118','fk_competence_domain' => '28','name' => 'Analyser, visualiser et documenter les processus métier des clients','symbol' => 'B4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '119','fk_competence_domain' => '29','name' => 'Identifier et analyser les données et développer des modèles de données','symbol' => 'C1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '120','fk_competence_domain' => '29','name' => 'Mettre en œuvre des modèles de données dans un dispositif de stockage de données numériques','symbol' => 'C2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '121','fk_competence_domain' => '29','name' => 'Planifier, implé menter et documenter la sécurité et la protection des données pour des solutions ICT','symbol' => 'C3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '122','fk_competence_domain' => '29','name' => 'Traiter des données à partir de dispositifs de stockage de données numériques','symbol' => 'C4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '123','fk_competence_domain' => '30','name' => 'Analyser et documenter les besoins en matière d’applications et d’interfaces','symbol' => 'G1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '124','fk_competence_domain' => '30','name' => 'Vérifier la faisabilité technique des prototypes d’interfaces utilisateur et les développer','symbol' => 'G2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '125','fk_competence_domain' => '30','name' => 'Evaluer et documenter la sécurité des applications et des interfaces','symbol' => 'G3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '126','fk_competence_domain' => '30','name' => 'Elaborer des variantes de mise en œuvre d’une application et développer la solution sur le plan conceptuel','symbol' => 'G4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '127','fk_competence_domain' => '30','name' => 'Implémenter les applications et les interfaces selon le concept en respectant les exigences de sécurité','symbol' => 'G5','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '128','fk_competence_domain' => '30','name' => 'Vérifier la qualité et la sécurité des applications et des interfaces','symbol' => 'G6','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '129','fk_competence_domain' => '31','name' => 'Définir la plateforme appropriée pour la livraison des applications','symbol' => 'H1','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '130','fk_competence_domain' => '31','name' => 'Définir le processus de livraison des applications','symbol' => 'H2','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '131','fk_competence_domain' => '31','name' => 'Implémenter le processus de livraison des applications','symbol' => 'H3','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '132','fk_competence_domain' => '31','name' => 'Surveiller les applications et les interfaces et résoudre les problèmes en cours de fonctionnement','symbol' => 'H4','methodologic' => 'null','social' => 'null','personal' => 'null','archive' => NULL), + array('id' => '133','fk_competence_domain' => '32','name' => 'Evaluer et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '134','fk_competence_domain' => '32','name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '135','fk_competence_domain' => '32','name' => 'Connecter et configurer des appareils périphériques','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, langage adapté au client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '136','fk_competence_domain' => '33','name' => 'Mettre en service des systèmes serveurs','symbol' => 'B1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '137','fk_competence_domain' => '33','name' => 'Installer des réseaux et leurs topologies','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision','social' => 'Faire des entretiens professionnels en anglais','personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction','archive' => NULL), + array('id' => '138','fk_competence_domain' => '33','name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage','symbol' => 'B3','methodologic' => 'Actions préventives','social' => 'Conseil','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress','archive' => NULL), + array('id' => '139','fk_competence_domain' => '34','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'C1','methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => '','personal' => 'Précision, fiable, actions attentives','archive' => NULL), + array('id' => '140','fk_competence_domain' => '34','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'C2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)','social' => 'Travail en groupe, entretien professionnel en anglais','personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline','archive' => NULL), + array('id' => '141','fk_competence_domain' => '34','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C3','methodologic' => 'Techniques d’interrogation','social' => 'Empathie','personal' => 'Comprendre et interpréter des documents anglais','archive' => NULL), + array('id' => '142','fk_competence_domain' => '34','name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)','symbol' => 'C4','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique','social' => 'Travailler en groupe','personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion','archive' => NULL), + array('id' => '143','fk_competence_domain' => '35','name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques','symbol' => 'D1','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '144','fk_competence_domain' => '35','name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place','symbol' => 'D2','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '145','fk_competence_domain' => '36','name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'E1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '146','fk_competence_domain' => '36','name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement','symbol' => 'E2','methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau','social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant','personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide','archive' => NULL), + array('id' => '147','fk_competence_domain' => '36','name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client','symbol' => 'E3','methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes','social' => 'Travail en groupe, empathie','personal' => 'Capacité d’innovation, créativité','archive' => NULL), + array('id' => '148','fk_competence_domain' => '36','name' => 'Mettre en œuvre des modèles de données dans une base de données','symbol' => 'E4','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '149','fk_competence_domain' => '36','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'E5','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '150','fk_competence_domain' => '37','name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace','symbol' => 'F1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '151','fk_competence_domain' => '37','name' => 'Collaborer à des projets','symbol' => 'F2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet','archive' => NULL), + array('id' => '152','fk_competence_domain' => '37','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'F3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL) + ); + foreach ($operational_competences as $operational_competencee){ + $this->db->table('operational_competence')->insert($operational_competencee); + } + } + +} \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php index fa2a8414..dfc5311e 100644 --- a/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php +++ b/orif/plafor/Database/Seeds/addOperationalCompetencesDatas.php @@ -11,732 +11,91 @@ class addOperationalCompetencesDatas extends Seeder public function run() { //operational_competence// - $operational_competences=[ - array ( - 'id' => '1', - 'fk_competence_domain' => '1', - 'name' => 'Analyser, structurer et documenter les exigences ainsi que les besoins', - 'symbol' => 'A++', - 'methodologic' => 'Travail structuré, documentation adéquate', - 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires', - 'personal' => 'Fiabilité, autoréflexion, interrogation constructive du problème', - 'archive' => '2021-06-02 08:44:41', - ), - array ( - 'id' => '2', - 'fk_competence_domain' => '1', - 'name' => 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises', - 'symbol' => 'A2', - 'methodologic' => 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision', - 'social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau', - 'personal' => 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions', - 'archive' => NULL, - ), - array ( - 'id' => '3', - 'fk_competence_domain' => '1', - 'name' => 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies', - 'symbol' => 'A3', - 'methodologic' => 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration', - 'social' => '', - 'personal' => 'Précision dans le travail', - 'archive' => NULL, - ), - array ( - 'id' => '4', - 'fk_competence_domain' => '2', - 'name' => 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', - 'symbol' => 'B1', - 'methodologic' => '', - 'social' => 'Capacité de critique mutuelle', - 'personal' => 'Développer préventivement, estimer les conséquences', - 'archive' => NULL, - ), - array ( - 'id' => '5', - 'fk_competence_domain' => '2', - 'name' => 'Mettre en œuvre des directives d’architecture dans un projet concret', - 'symbol' => 'B2', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacités d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '6', - 'fk_competence_domain' => '2', - 'name' => 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement', - 'symbol' => 'B3', - 'methodologic' => 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau', - 'social' => 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant', - 'personal' => 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide', - 'archive' => NULL, - ), - array ( - 'id' => '7', - 'fk_competence_domain' => '2', - 'name' => 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet', - 'symbol' => 'B4', - 'methodologic' => 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices', - 'social' => 'Travail en groupe, empathie', - 'personal' => 'Capacités innovatrices, créativité', - 'archive' => NULL, - ), - array ( - 'id' => '8', - 'fk_competence_domain' => '2', - 'name' => 'Garantir la qualité des applications', - 'symbol' => 'B5', - 'methodologic' => 'Travail reproductible, description propres des versions de l‘application, gestion de projets', - 'social' => 'Capacité de critiques et de conflits, empathie', - 'personal' => 'Vérification autocritique des résultats, méticulosité', - 'archive' => NULL, - ), - array ( - 'id' => '9', - 'fk_competence_domain' => '2', - 'name' => 'Préparer et mettre en œuvre l’introduction des applications', - 'symbol' => 'B6', - 'methodologic' => 'Gestion de projets', - 'social' => 'Capacités de communication, travail en réseau, déroulement sensible', - 'personal' => 'Conscience de la responsabilité', - 'archive' => NULL, - ), - array ( - 'id' => '10', - 'fk_competence_domain' => '3', - 'name' => 'Identifier et analyser des données, puis développer avec des modèles de données appropriés', - 'symbol' => 'C1', - 'methodologic' => 'Déroulement structuré, comportement avec des outils de présentation, développement itératif', - 'social' => 'Communication avec des clients, travail en groupe', - 'personal' => 'Précision, abstraction, remise en question critique', - 'archive' => NULL, - ), - array ( - 'id' => '11', - 'fk_competence_domain' => '3', - 'name' => 'Mettre en œuvre un modèle de données dans une base de données', - 'symbol' => 'C2', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacité d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '12', - 'fk_competence_domain' => '3', - 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', - 'symbol' => 'C3', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '13', - 'fk_competence_domain' => '4', - 'name' => 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau', - 'symbol' => 'D1', - 'methodologic' => 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '14', - 'fk_competence_domain' => '5', - 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', - 'symbol' => 'E1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '15', - 'fk_competence_domain' => '5', - 'name' => 'Collaborer à des projets et travailler selon des méthodes de projets', - 'symbol' => 'E2', - 'methodologic' => 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs', - 'personal' => 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion', - 'archive' => NULL, - ), - array ( - 'id' => '16', - 'fk_competence_domain' => '5', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'E3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise -', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', - 'archive' => NULL, - ), - array ( - 'id' => '17', - 'fk_competence_domain' => '6', - 'name' => 'Evaluer et mettre en service une place de travail utilisateur', - 'symbol' => 'A1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '18', - 'fk_competence_domain' => '6', - 'name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs', - 'symbol' => 'A2', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '19', - 'fk_competence_domain' => '6', - 'name' => 'Connecter et configurer des appareils périphériques', - 'symbol' => 'A3', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale, langage adapté au client', - 'personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '20', - 'fk_competence_domain' => '7', - 'name' => 'Mettre en service des systèmes serveurs', - 'symbol' => 'B1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => 'Orientation client, communication écrite et orale', - 'personal' => 'Autoréflexion critique', - 'archive' => NULL, - ), - array ( - 'id' => '21', - 'fk_competence_domain' => '7', - 'name' => 'Installer des réseaux et leurs topologies', - 'symbol' => 'B2', - 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision', - 'social' => 'Faire des entretiens professionnels en anglais', - 'personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '22', - 'fk_competence_domain' => '7', - 'name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage', - 'symbol' => 'B3', - 'methodologic' => 'Actions préventives', - 'social' => 'Conseil', - 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress', - 'archive' => NULL, - ), - array ( - 'id' => '23', - 'fk_competence_domain' => '8', - 'name' => 'Assurer la maintenance de réseaux et les développer', - 'symbol' => 'C1', - 'methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)', - 'social' => '', - 'personal' => 'Précision, fiable, actions attentives', - 'archive' => NULL, - ), - array ( - 'id' => '24', - 'fk_competence_domain' => '8', - 'name' => 'Assurer la maintenance et administrer des serveurs', - 'symbol' => 'C2', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)', - 'social' => 'Travail en groupe, entretien professionnel en anglais', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline', - 'archive' => NULL, - ), - array ( - 'id' => '25', - 'fk_competence_domain' => '8', - 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', - 'symbol' => 'C3', - 'methodologic' => 'Techniques d’interrogation', - 'social' => 'Empathie', - 'personal' => 'Comprendre et interpréter des documents anglais', - 'archive' => NULL, - ), - array ( - 'id' => '26', - 'fk_competence_domain' => '8', - 'name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)', - 'symbol' => 'C4', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique', - 'social' => 'Travailler en groupe', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion', - 'archive' => NULL, - ), - array ( - 'id' => '27', - 'fk_competence_domain' => '9', - 'name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques', - 'symbol' => 'D1', - 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide', - 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', - 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', - 'archive' => NULL, - ), - array ( - 'id' => '28', - 'fk_competence_domain' => '9', - 'name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place', - 'symbol' => 'D2', - 'methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist', - 'social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique', - 'personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité', - 'archive' => NULL, - ), - array ( - 'id' => '29', - 'fk_competence_domain' => '10', - 'name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ', - 'symbol' => 'E1', - 'methodologic' => '', - 'social' => 'Capacité de critique mutuelle', - 'personal' => 'Développer préventivement, estimer les conséquences', - 'archive' => NULL, - ), - array ( - 'id' => '30', - 'fk_competence_domain' => '10', - 'name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement', - 'symbol' => 'E2', - 'methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau', - 'social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant', - 'personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide', - 'archive' => NULL, - ), - array ( - 'id' => '31', - 'fk_competence_domain' => '10', - 'name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client', - 'symbol' => 'E3', - 'methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes', - 'social' => 'Travail en groupe, empathie', - 'personal' => 'Capacité d’innovation, créativité', - 'archive' => NULL, - ), - array ( - 'id' => '32', - 'fk_competence_domain' => '10', - 'name' => 'Mettre en œuvre des modèles de données dans une base de données', - 'symbol' => 'E4', - 'methodologic' => '', - 'social' => '', - 'personal' => 'Capacité d’abstraction', - 'archive' => NULL, - ), - array ( - 'id' => '33', - 'fk_competence_domain' => '10', - 'name' => 'Accéder à des données à partir d’applications avec un langage approprié', - 'symbol' => 'E5', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '34', - 'fk_competence_domain' => '11', - 'name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace', - 'symbol' => 'F1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise', - 'archive' => NULL, - ), - array ( - 'id' => '35', - 'fk_competence_domain' => '11', - 'name' => 'Collaborer à des projets', - 'symbol' => 'F2', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet', - 'archive' => NULL, - ), - array ( - 'id' => '36', - 'fk_competence_domain' => '11', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'F3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance', - 'archive' => NULL, - ), - array ( - 'id' => '42', - 'fk_competence_domain' => '12', - 'name' => 'Choisir et mettre en service une place de travail utilisateur', - 'symbol' => 'A1', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, -faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', - 'social' => 'Orientation client, communication écrite et orale.', - 'personal' => 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.', - 'archive' => NULL, - ), - array ( - 'id' => '43', - 'fk_competence_domain' => '12', - 'name' => 'Choisir et mettre en service des systèmes serveurs', - 'symbol' => 'A2', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des + $operational_competence = array( + array('id' => '1','fk_competence_domain' => '1','name' => 'Analyser, structurer et documenter les exigences ainsi que les besoins','symbol' => 'A1','methodologic' => 'Travail structuré, documentation adéquate','social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires','personal' => 'Fiabilité, autoréflexion, interrogation constructive du problème','archive' => NULL), + array('id' => '2','fk_competence_domain' => '1','name' => 'Elaborer diverses propositions de solutions incluant les interfaces utilisateurs requises','symbol' => 'A2','methodologic' => 'Travail structuré, documentation adéquate, appliquer des techniques de créativité, techniques de décision','social' => 'Comprendre et sentir les problèmes du client, communication avec des partenaires, modération, travail en réseau','personal' => 'Interrogation constructive du problème, s’informer de manière autonome sur les diverses solutions','archive' => NULL), + array('id' => '3','fk_competence_domain' => '1','name' => 'Vérifier l’exhaustivité des exigences et des besoins dans les propositions de solution choisies','symbol' => 'A3','methodologic' => 'Techniques de validation, assurance qualité, techniques de présentation et de démonstration','social' => '','personal' => 'Précision dans le travail','archive' => NULL), + array('id' => '4','fk_competence_domain' => '2','name' => 'Elaborer un concept de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'B1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '5','fk_competence_domain' => '2','name' => 'Mettre en œuvre des directives d’architecture dans un projet concret','symbol' => 'B2','methodologic' => '','social' => '','personal' => 'Capacités d’abstraction','archive' => NULL), + array('id' => '6','fk_competence_domain' => '2','name' => 'Développer et documenter des applications conformément aux besoins du client en utilisant des modèles appropriés de déroulement','symbol' => 'B3','methodologic' => 'Travail structuré et systématique, capacités d‘abstraction, compétences de modélisation, acquisition d‘informations, développer efficacement, tenir compte de la charge du réseau','social' => 'Travail en groupe, capacités de communication, capacités de critiques, orientation client, disponibilités pour la reprise de l‘existant','personal' => 'Penser économies d‘entreprises, persévérance, conscience de la qualité, capacité de compréhension rapide','archive' => NULL), + array('id' => '7','fk_competence_domain' => '2','name' => 'Implémenter des applications et des interfaces utilisateurs en fonction des besoins du client et du projet','symbol' => 'B4','methodologic' => 'Orientation client, développement approprié au marché, appliquer des techniques innovatrices','social' => 'Travail en groupe, empathie','personal' => 'Capacités innovatrices, créativité','archive' => NULL), + array('id' => '8','fk_competence_domain' => '2','name' => 'Garantir la qualité des applications','symbol' => 'B5','methodologic' => 'Travail reproductible, description propres des versions de l‘application, gestion de projets','social' => 'Capacité de critiques et de conflits, empathie','personal' => 'Vérification autocritique des résultats, méticulosité','archive' => NULL), + array('id' => '9','fk_competence_domain' => '2','name' => 'Préparer et mettre en œuvre l’introduction des applications','symbol' => 'B6','methodologic' => 'Gestion de projets','social' => 'Capacités de communication, travail en réseau, déroulement sensible','personal' => 'Conscience de la responsabilité','archive' => NULL), + array('id' => '10','fk_competence_domain' => '3','name' => 'Identifier et analyser des données, puis développer avec des modèles de données appropriés','symbol' => 'C1','methodologic' => 'Déroulement structuré, comportement avec des outils de présentation, développement itératif','social' => 'Communication avec des clients, travail en groupe','personal' => 'Précision, abstraction, remise en question critique','archive' => NULL), + array('id' => '11','fk_competence_domain' => '3','name' => 'Mettre en œuvre un modèle de données dans une base de données','symbol' => 'C2','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '12','fk_competence_domain' => '3','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'C3','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '13','fk_competence_domain' => '4','name' => 'Installer et configurer, selon des directives, des postes de travail ainsi que des services de serveurs dans l’exploitation locale du réseau','symbol' => 'D1','methodologic' => 'Considération de la valeur utile, déroulement systématique, check liste, méthode de travail durable économiquement, écologiquement, socialement','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '14','fk_competence_domain' => '5','name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace','symbol' => 'E1','methodologic' => 'Déroulement structuré, déroulement systématique selon check list, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '15','fk_competence_domain' => '5','name' => 'Collaborer à des projets et travailler selon des méthodes de projets','symbol' => 'E2','methodologic' => 'Méthodes de travail, pensée transversale, considération des variantes, analyse des grandeurs utiles, pensée en réseau, techniques de présentation et de ventes','social' => 'Faculté de travail en groupe, développer et mettre en œuvre selon les besoins, communiquer selon le niveau et les utilisateurs, comportement respectueux et adapté avec les collaborateurs','personal' => 'Réflexion, disposé à l‘apprentissage, intérêts, capacité decritiques, capacité d’endurance jusqu’à la conclusion','archive' => NULL), + array('id' => '16','fk_competence_domain' => '5','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'E3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise +','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL), + array('id' => '17','fk_competence_domain' => '6','name' => 'Evaluer et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '18','fk_competence_domain' => '6','name' => 'Installer et synchroniser sur le réseau interne des appareils mobiles des utilisateurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, comportement convivial avec le client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '19','fk_competence_domain' => '6','name' => 'Connecter et configurer des appareils périphériques','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale, langage adapté au client','personal' => 'Conscience de la responsabilité, fiabilité, autoréflexion critique','archive' => NULL), + array('id' => '20','fk_competence_domain' => '7','name' => 'Mettre en service des systèmes serveurs','symbol' => 'B1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => 'Orientation client, communication écrite et orale','personal' => 'Autoréflexion critique','archive' => NULL), + array('id' => '21','fk_competence_domain' => '7','name' => 'Installer des réseaux et leurs topologies','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision','social' => 'Faire des entretiens professionnels en anglais','personal' => 'Méthode précise de travail, conscience de la responsabilité, capacités d’abstraction','archive' => NULL), + array('id' => '22','fk_competence_domain' => '7','name' => 'Elaborer et mettre en œuvre des concepts de sécurité des données, de sécurité système et d’archivage','symbol' => 'B3','methodologic' => 'Actions préventives','social' => 'Conseil','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress','archive' => NULL), + array('id' => '23','fk_competence_domain' => '8','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'C1','methodologic' => 'déroulement systématique, faire de checklist, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement)','social' => '','personal' => 'Précision, fiable, actions attentives','archive' => NULL), + array('id' => '24','fk_competence_domain' => '8','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'C2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable (économiquement, écologiquement, socialement)','social' => 'Travail en groupe, entretien professionnel en anglais','personal' => 'Travail patient et autocritique, conscience de la qualité, autoréflexion, éthique, discrétion, discipline','archive' => NULL), + array('id' => '25','fk_competence_domain' => '8','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C3','methodologic' => 'Techniques d’interrogation','social' => 'Empathie','personal' => 'Comprendre et interpréter des documents anglais','archive' => NULL), + array('id' => '26','fk_competence_domain' => '8','name' => 'Mettre en service et configurer des services de communication et de soutien des travaux de groupe (groupeware)','symbol' => 'C4','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, considération de l’ensemble, remise en question systématique','social' => 'Travailler en groupe','personal' => 'Travail patient et auto-critique, sens de la qualité, autoreflexion','archive' => NULL), + array('id' => '27','fk_competence_domain' => '9','name' => 'Instruire et aider les utilisateurs dans l’utilisation des moyens informatiques','symbol' => 'D1','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist, établir des documents de première aide','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '28','fk_competence_domain' => '9','name' => 'Assurer des tâches de support par le biais du contact client et résoudre les problèmes sur place','symbol' => 'D2','methodologic' => 'Techniques d’interrogation, déroulement structuré, travailler selon checklist','social' => 'Capacité de communication, comportement avec autrui en situation de stress, comportement selon le niveau hiérarchique','personal' => 'Garder le calme, résistance au stress, maîtriser sa propre nervosité','archive' => NULL), + array('id' => '29','fk_competence_domain' => '10','name' => 'Elaborer des concepts de tests, mettre en application divers déroulements de tests et tester systématiquement les applications ','symbol' => 'E1','methodologic' => '','social' => 'Capacité de critique mutuelle','personal' => 'Développer préventivement, estimer les conséquences','archive' => NULL), + array('id' => '30','fk_competence_domain' => '10','name' => 'Développer et documenter des applications de manière conviviale en utilisant des modèles appropriés de déroulement','symbol' => 'E2','methodologic' => 'Utiliser efficacement l’environnement logiciels, travail systématique et structuré, capacités d’abstraction, compétences en modélisation, acquisition d’informations, développer efficacement, observer la charge du réseau','social' => 'Travail en groupe, capacités de communication, de critique, de compromis, orientation client, disponibilité, reprise de l’existant','personal' => 'Pensée économique, capacité de résistance, conscience de la qualité, capacité de saisie rapide','archive' => NULL), + array('id' => '31','fk_competence_domain' => '10','name' => 'Développer et implémenter des interfaces utilisateurs pour des applications selon les besoins du client','symbol' => 'E3','methodologic' => 'Orientation client, concept centré sur l’utilisateur, application de techniques innovantes','social' => 'Travail en groupe, empathie','personal' => 'Capacité d’innovation, créativité','archive' => NULL), + array('id' => '32','fk_competence_domain' => '10','name' => 'Mettre en œuvre des modèles de données dans une base de données','symbol' => 'E4','methodologic' => '','social' => '','personal' => 'Capacité d’abstraction','archive' => NULL), + array('id' => '33','fk_competence_domain' => '10','name' => 'Accéder à des données à partir d’applications avec un langage approprié','symbol' => 'E5','methodologic' => '','social' => '','personal' => '','archive' => NULL), + array('id' => '34','fk_competence_domain' => '11','name' => 'Préparer, structurer, exécuter et documenter des travaux et des mandats de manière systématique et efficace','symbol' => 'F1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise','archive' => NULL), + array('id' => '35','fk_competence_domain' => '11','name' => 'Collaborer à des projets','symbol' => 'F2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet','archive' => NULL), + array('id' => '36','fk_competence_domain' => '11','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'F3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance','archive' => NULL), + array('id' => '42','fk_competence_domain' => '12','name' => 'Choisir et mettre en service une place de travail utilisateur','symbol' => 'A1','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, +faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).','social' => 'Orientation client, communication écrite et orale.','personal' => 'Conscience de la responsabilité, fiabilité, auto-réflexion critique.','archive' => NULL), + array('id' => '43','fk_competence_domain' => '12','name' => 'Choisir et mettre en service des systèmes serveurs','symbol' => 'A2','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des checklists, travail durable (économiquement, écologiquement, -socialement).', - 'social' => 'Orientation client, communication écrite et orale.', - 'personal' => 'Auto-réflexion critique.', - 'archive' => NULL, - ), - array ( - 'id' => '44', - 'fk_competence_domain' => '12', - 'name' => 'Choisir des composants réseau et les mettre en service', - 'symbol' => 'A3', - 'methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des +socialement).','social' => 'Orientation client, communication écrite et orale.','personal' => 'Auto-réflexion critique.','archive' => NULL), + array('id' => '44','fk_competence_domain' => '12','name' => 'Choisir des composants réseau et les mettre en service','symbol' => 'A3','methodologic' => 'Analyse des valeurs utiles, déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail -(économiquement, écologiquement, socialement).', - 'social' => 'Communication écrite et orale, empathie, travail en groupe, -langage adapté au public cible.', - 'personal' => 'Auto-réflexion critique, capacités d‘abstraction.', - 'archive' => NULL, - ), - array ( - 'id' => '45', - 'fk_competence_domain' => '13', - 'name' => 'Planifier et installer des réseaux ainsi que leur topologie', - 'symbol' => 'B1', - 'methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.', - 'social' => 'Faire des entretiens professionnels en anglais.', - 'personal' => 'Méthode précise de travail, conscience de la responsabilité, -capacités d’abstraction.', - 'archive' => NULL, - ), - array ( - 'id' => '46', - 'fk_competence_domain' => '13', - 'name' => 'Planifier et assurer la sécurité réseau ainsi que l’accès distant', - 'symbol' => 'B2', - 'methodologic' => 'Déroulement analytique, principe de Pareto.', - 'social' => 'Reconnaître et classer les besoins en sécurité du client.', - 'personal' => 'Travail précis, conscience de la responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '47', - 'fk_competence_domain' => '13', - 'name' => 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement', - 'symbol' => 'B3', - 'methodologic' => 'Agir de manière préventive.', - 'social' => 'Conscience de la hiérarchie.', - 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.', - 'archive' => NULL, - ), - array ( - 'id' => '48', - 'fk_competence_domain' => '13', - 'name' => 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau', - 'symbol' => 'B4', - 'methodologic' => 'Agir de manière préventive.', - 'social' => '', - 'personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.', - 'archive' => NULL, - ), - array ( - 'id' => '49', - 'fk_competence_domain' => '14', - 'name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations', - 'symbol' => 'C1', - 'methodologic' => 'Techniques d’interrogation.', - 'social' => 'Empathie.', - 'personal' => 'Comprendre et interpréter des documents anglais.', - 'archive' => NULL, - ), - array ( - 'id' => '50', - 'fk_competence_domain' => '14', - 'name' => 'Mettre en service et configurer les services étendus des serveurs', - 'symbol' => 'C2', - 'methodologic' => 'Techniques d‘entretiens, pensées préventive et systématique, -considération globale, remise en question systématique.', - 'social' => 'Travail en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '51', - 'fk_competence_domain' => '14', - 'name' => 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)', - 'symbol' => 'C3', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, -considération de l’ensemble, remise en question systématique.', - 'social' => 'Travailler en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '52', - 'fk_competence_domain' => '14', - 'name' => 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage', - 'symbol' => 'C4', - 'methodologic' => 'Actions préventives.', - 'social' => 'Conseil.', - 'personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.', - 'archive' => NULL, - ), - array ( - 'id' => '53', - 'fk_competence_domain' => '14', - 'name' => 'Offrir des services via le réseau en prenant des mesures de sécurité', - 'symbol' => 'C5', - 'methodologic' => 'Techniques d’entretien, pensée systématique et préventive, -considération de l’ensemble, remise en question systématique.', - 'social' => 'Travailler en groupe.', - 'personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '54', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance de réseaux et les développer', - 'symbol' => 'D1', - 'methodologic' => 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).', - 'social' => '', - 'personal' => 'Précision, fiable, actions attentives.', - 'archive' => NULL, - ), - array ( - 'id' => '55', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance et administrer des serveurs', - 'symbol' => 'D2', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable -(économiquement, écologiquement, socialement).', - 'social' => 'Travail en groupe, entretien professionnel en anglais.', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.', - 'archive' => NULL, - ), - array ( - 'id' => '56', - 'fk_competence_domain' => '15', - 'name' => 'Assurer la maintenance et administrer les équipements des utilisateurs', - 'symbol' => 'D3', - 'methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.', - 'social' => 'Travail en groupe, comportement diplomatique avec les utilisateurs.', - 'personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.', - 'archive' => NULL, - ), - array ( - 'id' => '57', - 'fk_competence_domain' => '15', - 'name' => 'Enregistrer, standardiser et automatiser des processus TIC', - 'symbol' => 'D4', - 'methodologic' => 'Déroulement structuré et orienté objectif, pensée et action préventive.', - 'social' => 'Conseil, comportement dans des situations de stress.', - 'personal' => 'Penser et travailler de manière disciplinée.', - 'archive' => NULL, - ), - array ( - 'id' => '58', - 'fk_competence_domain' => '15', - 'name' => 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications', - 'symbol' => 'D5', - 'methodologic' => 'Pensée préventive.', - 'social' => 'Appliquer l’anglais oralement et par écrit.', - 'personal' => 'Réflexion, discipline et capacité d‘endurance.', - 'archive' => NULL, - ), - array ( - 'id' => '59', - 'fk_competence_domain' => '16', - 'name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace', - 'symbol' => 'E1', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.', - 'archive' => NULL, - ), - array ( - 'id' => '60', - 'fk_competence_domain' => '16', - 'name' => 'Collaborer à des projets', - 'symbol' => 'E2', - 'methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.', - 'social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.', - 'personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.', - 'archive' => NULL, - ), - array ( - 'id' => '61', - 'fk_competence_domain' => '16', - 'name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur', - 'symbol' => 'E3', - 'methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.', - 'social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.', - 'personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.', - 'archive' => NULL, - ), - array ( - 'id' => '62', - 'fk_competence_domain' => '17', - 'name' => 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance', - 'symbol' => 'A1', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '63', - 'fk_competence_domain' => '17', - 'name' => 'Installer et configurer des applications standard', - 'symbol' => 'A2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '64', - 'fk_competence_domain' => '17', - 'name' => 'Exécuter et évaluer des tests de fonctionnalité', - 'symbol' => 'A3', - 'methodologic' => 'Techniques de travail, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '65', - 'fk_competence_domain' => '17', - 'name' => 'Mettre en œuvre des scripts d’automatisation', - 'symbol' => 'A4', - 'methodologic' => 'Techniques de travail, comportement économique.', - 'social' => '', - 'personal' => 'Autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '66', - 'fk_competence_domain' => '18', - 'name' => 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes', - 'symbol' => 'B1', - 'methodologic' => 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '67', - 'fk_competence_domain' => '18', - 'name' => 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes', - 'symbol' => 'B2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '68', - 'fk_competence_domain' => '18', - 'name' => 'Assurer la sécurité des terminaux ICT utilisateurs', - 'symbol' => 'B3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '69', - 'fk_competence_domain' => '19', - 'name' => 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT', - 'symbol' => 'C1', - 'methodologic' => 'Techniques de travail, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '70', - 'fk_competence_domain' => '19', - 'name' => 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs', - 'symbol' => 'C2', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '71', - 'fk_competence_domain' => '19', - 'name' => 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT', - 'symbol' => 'C3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '72', - 'fk_competence_domain' => '20', - 'name' => 'Traiter les demandes des clients au 1er et 2e niveau du support', - 'symbol' => 'D1', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.', - 'archive' => NULL, - ), - array ( - 'id' => '73', - 'fk_competence_domain' => '20', - 'name' => 'Se comporter de manière adéquate avec les clients et l’équipe', - 'symbol' => 'D2', - 'methodologic' => 'Techniques de travail, stratégies d’information et de communication.', - 'social' => 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.', - 'personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité.', - 'archive' => NULL, - ), - array ( - 'id' => '74', - 'fk_competence_domain' => '20', - 'name' => 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets', - 'symbol' => 'D3', - 'methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.', - 'social' => 'Capacité à communiquer, aptitude au travail en équipe.', - 'personal' => 'Autonomie et responsabilité, flexibilité.', - 'archive' => NULL, - ), - array ( - 'id' => '75', - 'fk_competence_domain' => '25', - 'name' => 'aa', - 'symbol' => 'aa', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - array ( - 'id' => '76', - 'fk_competence_domain' => '25', - 'name' => 'aa', - 'symbol' => 'aa', - 'methodologic' => '', - 'social' => '', - 'personal' => '', - 'archive' => NULL, - ), - ]; - foreach ($operational_competences as $operational_competence){ - $this->db->table('operational_competence')->insert($operational_competence); +(économiquement, écologiquement, socialement).','social' => 'Communication écrite et orale, empathie, travail en groupe, +langage adapté au public cible.','personal' => 'Auto-réflexion critique, capacités d‘abstraction.','archive' => NULL), + array('id' => '45','fk_competence_domain' => '13','name' => 'Planifier et installer des réseaux ainsi que leur topologie','symbol' => 'B1','methodologic' => 'Déroulement analytique, principe de Pareto, techniques de visualisation, diagrammes, techniques de décision.','social' => 'Faire des entretiens professionnels en anglais.','personal' => 'Méthode précise de travail, conscience de la responsabilité, +capacités d’abstraction.','archive' => NULL), + array('id' => '46','fk_competence_domain' => '13','name' => 'Planifier et assurer la sécurité réseau ainsi que l’accès distant','symbol' => 'B2','methodologic' => 'Déroulement analytique, principe de Pareto.','social' => 'Reconnaître et classer les besoins en sécurité du client.','personal' => 'Travail précis, conscience de la responsabilité.','archive' => NULL), + array('id' => '47','fk_competence_domain' => '13','name' => 'Surveiller des réseaux et garantir leur sécurité et leur capacité de fonctionnement','symbol' => 'B3','methodologic' => 'Agir de manière préventive.','social' => 'Conscience de la hiérarchie.','personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision.','archive' => NULL), + array('id' => '48','fk_competence_domain' => '13','name' => 'Planifier, installer et exploiter des systèmes de sauvegarde de données en réseau','symbol' => 'B4','methodologic' => 'Agir de manière préventive.','social' => '','personal' => 'Discrétion (comportement avec des données confidentielles), fiabilité, précision, éthique, discrétion, secret professionnel.','archive' => NULL), + array('id' => '49','fk_competence_domain' => '14','name' => 'Planifier, mettre en œuvre des services d’annuaires et des autorisations','symbol' => 'C1','methodologic' => 'Techniques d’interrogation.','social' => 'Empathie.','personal' => 'Comprendre et interpréter des documents anglais.','archive' => NULL), + array('id' => '50','fk_competence_domain' => '14','name' => 'Mettre en service et configurer les services étendus des serveurs','symbol' => 'C2','methodologic' => 'Techniques d‘entretiens, pensées préventive et systématique, +considération globale, remise en question systématique.','social' => 'Travail en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '51','fk_competence_domain' => '14','name' => 'Mettre en service et configurer des services de communication ainsi que de soutien des travaux de groupe (groupeware)','symbol' => 'C3','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.','social' => 'Travailler en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '52','fk_competence_domain' => '14','name' => 'Élaborer et mettre en œuvre des concepts de sécurité des données, de sécurité des systèmes et d’archivage','symbol' => 'C4','methodologic' => 'Actions préventives.','social' => 'Conseil.','personal' => 'Penser et travailler de manière disciplinée, comportement dans les situations de stress.','archive' => NULL), + array('id' => '53','fk_competence_domain' => '14','name' => 'Offrir des services via le réseau en prenant des mesures de sécurité','symbol' => 'C5','methodologic' => 'Techniques d’entretien, pensée systématique et préventive, +considération de l’ensemble, remise en question systématique.','social' => 'Travailler en groupe.','personal' => 'Travail patient et auto-critique, sens de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '54','fk_competence_domain' => '15','name' => 'Assurer la maintenance de réseaux et les développer','symbol' => 'D1','methodologic' => 'Déroulement systématique, faire des checklists, technique commerciale, méthode durable de travail (économiquement, écologiquement, socialement).','social' => '','personal' => 'Précision, fiable, actions attentives.','archive' => NULL), + array('id' => '55','fk_competence_domain' => '15','name' => 'Assurer la maintenance et administrer des serveurs','symbol' => 'D2','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique, travail durable +(économiquement, écologiquement, socialement).','social' => 'Travail en groupe, entretien professionnel en anglais.','personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion, éthique, discrétion, discipline.','archive' => NULL), + array('id' => '56','fk_competence_domain' => '15','name' => 'Assurer la maintenance et administrer les équipements des utilisateurs','symbol' => 'D3','methodologic' => 'Pensée systématique et préventive, considération de l’ensemble, remise en question systématique.','social' => 'Travail en groupe, comportement diplomatique avec les utilisateurs.','personal' => 'Travail patient et autocritique, conscience de la qualité, auto-réflexion.','archive' => NULL), + array('id' => '57','fk_competence_domain' => '15','name' => 'Enregistrer, standardiser et automatiser des processus TIC','symbol' => 'D4','methodologic' => 'Déroulement structuré et orienté objectif, pensée et action préventive.','social' => 'Conseil, comportement dans des situations de stress.','personal' => 'Penser et travailler de manière disciplinée.','archive' => NULL), + array('id' => '58','fk_competence_domain' => '15','name' => 'Planifier, mettre en service et appliquer des systèmes de déploiement pour des applications','symbol' => 'D5','methodologic' => 'Pensée préventive.','social' => 'Appliquer l’anglais oralement et par écrit.','personal' => 'Réflexion, discipline et capacité d‘endurance.','archive' => NULL), + array('id' => '59','fk_competence_domain' => '16','name' => 'Préparer, structurer et documenter des travaux et mandats de manière systématique et efficace','symbol' => 'E1','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise.','archive' => NULL), + array('id' => '60','fk_competence_domain' => '16','name' => 'Collaborer à des projets','symbol' => 'E2','methodologic' => 'Déroulement structuré, déroulement systématique selon checklist, documentation des travaux.','social' => 'Travail en groupe, prêt à aider, intérêt global, tenir une conversation en langue étrangère, compréhension des rôles.','personal' => 'Fiabilité, bon comportement, capacité élevée de charges, s’identifier à l’entreprise, réfléchir en commun dans le projet.','archive' => NULL), + array('id' => '61','fk_competence_domain' => '16','name' => 'Dans le cadre de projets, communiquer de manière ciblée et adaptée à l’interlocuteur','symbol' => 'E3','methodologic' => 'Méthodes de travail, pensée en réseau, techniques de présentation et de ventes.','social' => 'Travail en groupe, communiquer conformément au niveau et aux utilisateurs, comportement respectueux et approprié avec toutes les personnes de contact à tous les niveaux, communication précise.','personal' => 'Réflexion, prêt à apprendre, intérêt, capacité de critiques, capacité de résistance.','archive' => NULL), + array('id' => '62','fk_competence_domain' => '17','name' => 'Installer et configurer des terminaux ICT utilisateurs ainsi que des systèmes d’exploitation et en assurer la maintenance','symbol' => 'A1','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement écologique et économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '63','fk_competence_domain' => '17','name' => 'Installer et configurer des applications standard','symbol' => 'A2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '64','fk_competence_domain' => '17','name' => 'Exécuter et évaluer des tests de fonctionnalité','symbol' => 'A3','methodologic' => 'Techniques de travail, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité.','archive' => NULL), + array('id' => '65','fk_competence_domain' => '17','name' => 'Mettre en œuvre des scripts d’automatisation','symbol' => 'A4','methodologic' => 'Techniques de travail, comportement économique.','social' => '','personal' => 'Autonomie et responsabilité.','archive' => NULL), + array('id' => '66','fk_competence_domain' => '18','name' => 'Connecter à l’infrastructure réseau des périphériques compatibles réseau ainsi que des services connexes et résoudre les pannes','symbol' => 'B1','methodologic' => 'Techniques de travail, approche et actions interdisciplinaires, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '67','fk_competence_domain' => '18','name' => 'Connecter des terminaux ICT utilisateurs aux prestations de serveur et résoudre les pannes','symbol' => 'B2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '68','fk_competence_domain' => '18','name' => 'Assurer la sécurité des terminaux ICT utilisateurs','symbol' => 'B3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '69','fk_competence_domain' => '19','name' => 'Instruire et soutenir les utilisateurs dans la mise en œuvre des moyens ICT','symbol' => 'C1','methodologic' => 'Techniques de travail, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité, résistance au stress, flexibilité.','archive' => NULL), + array('id' => '70','fk_competence_domain' => '19','name' => 'Élaborer et adapter des modes d’emploi et checklists pour les utilisateurs','symbol' => 'C2','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL), + array('id' => '71','fk_competence_domain' => '19','name' => 'Conseiller et soutenir les clients lors de l’acquisition d’appareils terminaux ICT','symbol' => 'C3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL), + array('id' => '72','fk_competence_domain' => '20','name' => 'Traiter les demandes des clients au 1er et 2e niveau du support','symbol' => 'D1','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, techniques de présentation, stratégies d’information et de communication, économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, résistance au stress, flexibilité, apprentissage tout au long de la vie.','archive' => NULL), + array('id' => '73','fk_competence_domain' => '20','name' => 'Se comporter de manière adéquate avec les clients et l’équipe','symbol' => 'D2','methodologic' => 'Techniques de travail, stratégies d’information et de communication.','social' => 'Capacité à communiquer, capacité à gérer des conflits, aptitude au travail en équipe.','personal' => 'Capacité à analyser sa pratique, autonomie et responsabilité.','archive' => NULL), + array('id' => '74','fk_competence_domain' => '20','name' => 'Exécuter, selon des méthodes spécifiques, les travaux dans l’environnement ICT et collaborer à des projets','symbol' => 'D3','methodologic' => 'Techniques de travail, approche et action interdisciplinaires axées sur les processus, stratégies d’information et de communication, comportement économique.','social' => 'Capacité à communiquer, aptitude au travail en équipe.','personal' => 'Autonomie et responsabilité, flexibilité.','archive' => NULL) + ); + foreach ($operational_competence as $operational_competencee){ + $this->db->table('operational_competence')->insert($operational_competencee); } } } \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php index 2edc68c2..714902c4 100644 --- a/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php +++ b/orif/plafor/Database/Seeds/addTrainerApprenticeDatas.php @@ -12,30 +12,13 @@ class addTrainerApprenticeDatas extends Seeder public function run() { //trainer_apprentice// - $trainer_apprentices=[ - array ( - 'id' => '10', - 'fk_trainer' => '2', - 'fk_apprentice' => '4', - ), - array ( - 'id' => '11', - 'fk_trainer' => '3', - 'fk_apprentice' => '4', - ), - array ( - 'id' => '2', - 'fk_trainer' => '3', - 'fk_apprentice' => '5', - ), - array ( - 'id' => '3', - 'fk_trainer' => '6', - 'fk_apprentice' => '7', - ), - ]; - foreach ($trainer_apprentices as $trainer_apprentice) - $this->db->table('trainer_apprentice')->insert($trainer_apprentice); + $trainer_apprentice = array( + array('id' => '1','fk_trainer' => '2','fk_apprentice' => '4'), + array('id' => '2','fk_trainer' => '3','fk_apprentice' => '5'), + array('id' => '3','fk_trainer' => '6','fk_apprentice' => '7') + ); + foreach ($trainer_apprentice as $trainer_apprenticee) + $this->db->table('trainer_apprentice')->insert($trainer_apprenticee); } } \ No newline at end of file diff --git a/orif/plafor/Database/Seeds/addUserCoursesDatas.php b/orif/plafor/Database/Seeds/addUserCoursesDatas.php index b02d6ba3..0c61e550 100644 --- a/orif/plafor/Database/Seeds/addUserCoursesDatas.php +++ b/orif/plafor/Database/Seeds/addUserCoursesDatas.php @@ -11,42 +11,13 @@ class addUserCoursesDatas extends Seeder public function run() { //user_course// - $user_courses=[ - array ( - 'id' => '1', - 'fk_user' => '4', - 'fk_course_plan' => '1', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '2', - 'fk_user' => '5', - 'fk_course_plan' => '3', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '3', - 'fk_user' => '7', - 'fk_course_plan' => '4', - 'fk_status' => '1', - 'date_begin' => '2020-07-09', - 'date_end' => '0000-00-00', - ), - array ( - 'id' => '4', - 'fk_user' => '5', - 'fk_course_plan' => '1', - 'fk_status' => '1', - 'date_begin' => '2021-05-06', - 'date_end' => '2021-08-20', - ), - ]; - foreach ($user_courses as $user_course){ - $this->db->table('user_course')->insert($user_course); + $user_course = array( + array('id' => '1','fk_user' => '4','fk_course_plan' => '1','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00'), + array('id' => '2','fk_user' => '5','fk_course_plan' => '3','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00'), + array('id' => '3','fk_user' => '7','fk_course_plan' => '4','fk_status' => '1','date_begin' => '2020-07-09','date_end' => '0000-00-00') + ); + foreach ($user_course as $user_coursee){ + $this->db->table('user_course')->insert($user_coursee); } } diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index 186026b3..06ecbcb7 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -1,75 +1,245 @@ 'Le domaine de compétences existe déjà', - 'competence_domain_already_associated' => 'Un domaine de compétences portant le même (nom ou symbole) est déjà associé à ce plan de formation', - - //Usefull Links - 'plafor_module' => 'Module Plafor', - - //Apprentice - 'title_list_apprentice' => 'Liste des apprentis', - 'title_view_apprentice' => 'Détail de l\'apprenti', - 'title_save_apprentice_link' => 'Ajouter un formateur lié', - 'title_save_user_course' => 'Ajouter une formation liée', - 'title_view_user_course' => 'Détail de la formation de l\'apprenti', - 'title_trainer_linked' => 'Formateur(s) lié(s)', - 'title_apprentice_followed_courses' => 'Formation(s) suivie(s)', - 'title_apprentice_link_delete' => 'Supprimer un apprenti lié', - - //Course Plan - 'title_list_course_plan' => 'Liste des plans de formation', - 'title_view_course_plan' => 'Détail du plan de formation', - 'title_delete_course_plan' => 'Supprimer', - 'title_course_plan_new' => 'Ajouter un plan de formation', - 'title_course_plan_update' => 'Modifier le plan de formation', - 'title_course_plan_view' => 'Afficher les détails du plan de formation', - - - //Competence Domain - 'title_view_competence_domain' => 'Détail du domaine de compétence', - 'title_view_competence_domains_linked' => 'Domaines de compétences liés', - 'title_list_competence_domain' => 'Liste des domaines de compétence', - 'title_competence_domain_new' => 'Ajouter un domaine de compétence', - 'title_competence_domain_update' => 'Modifier un domaine de compétence', - 'title_competence_domain_delete' => 'Supprimer un domaine de compétence', - 'title_competence_domain_list' => 'Liste des domaines de compétence', - - - - - //Operational Competence - 'title_list_operational_competence' => 'Liste des compétences opérationnelles', - 'title_view_operational_competence' => 'Détail de la compétence opérationnelle', - 'title_view_operational_competence_linked' => 'Compétences opérationnelles liées', - 'title_operational_competence_delete' => 'Supprimer une compétence opérationnelle', - 'title_operational_competence_update' => 'Modifier une compétence opérationnelle', - 'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', - - - - //Objectives - 'title_list_objective' => 'Liste des objectifs', - 'title_view_objective' => 'Détail de l\'objectif', - 'title_objective_delete' => 'Supprimer un objectif', - 'title_objective_update' => 'Modifier un objectif', - 'title_objective_new' => 'Ajouter un objectif', - - - //User course - 'title_user_course_delete' => 'Supprimer un cours', - 'title_user_course_view' => 'Détails du cours', - - 'user_course_title_course_plan_link' => 'Ajouter un cours associé', - //Acquisition status - 'title_acquisition_status_view'=>'Afficher les détails des status d\'acquisition', - 'title_acquisition_status_save' =>'Ajouter un statut d\'acquisition', - 'title_acquisition_status_edit' => 'Modifier un statut d\'acquisition', - //Comment - 'title_comment_save'=>'Ajouter un commentaire', - 'comment_delete' => 'souhaitez-vous supprimer le commentaire ?', - - - ]; \ No newline at end of file +return [ + + //Errors + 'same_competence_domain' => 'Le domaine de compétences existe déjà', + 'competence_domain_already_associated' => 'Un domaine de compétences portant le même (nom ou symbole) est déjà associé à ce plan de formation', + + // Field labels + 'field_identity' => 'id', + + //Usefull Links + 'plafor_module' => 'Module Plafor', + + // User types + 'title_administrator' => 'Administrateur', + 'title_trainer' => 'Formateur', + 'title_apprentice' => 'Apprenti', + + //Apprentice + 'title_list_apprentice' => 'Liste des apprentis', + 'title_view_apprentice' => 'Détail de l\'apprenti', + 'title_save_apprentice_link' => 'Ajouter un formateur lié', + 'title_save_user_course' => 'Ajouter une formation liée', + 'title_view_user_course' => 'Détail de la formation de l\'apprenti', + 'title_trainer_linked' => 'Formateur(s) lié(s)', + 'title_apprentice_followed_courses' => 'Formation(s) suivie(s)', + 'title_apprentice_link_delete' => 'Supprimer un apprenti lié', + + //Course Plan + 'title_list_course_plan' => 'Liste des plans de formation', + 'title_view_course_plan' => 'Détail du plan de formation', + 'title_delete_course_plan' => 'Supprimer', + 'title_course_plan_new' => 'Ajouter un plan de formation', + 'title_course_plan_update' => 'Modifier le plan de formation', + 'title_course_plan_view' => 'Afficher les détails du plan de formation', + + //Competence Domain + 'title_view_competence_domain' => 'Détail du domaine de compétence', + 'title_view_competence_domains_linked' => 'Domaines de compétences liés', + 'title_list_competence_domain' => 'Liste des domaines de compétence', + 'title_competence_domain_new' => 'Ajouter un domaine de compétence', + 'title_competence_domain_update' => 'Modifier un domaine de compétence', + 'title_competence_domain_delete' => 'Supprimer un domaine de compétence', + 'title_competence_domain_list' => 'Liste des domaines de compétence', + + //Operational Competence + 'title_list_operational_competence' => 'Liste des compétences opérationnelles', + 'title_view_operational_competence' => 'Détail de la compétence opérationnelle', + 'title_view_operational_competence_linked' => 'Compétences opérationnelles liées', + 'title_operational_competence_delete' => 'Supprimer une compétence opérationnelle', + 'title_operational_competence_update' => 'Modifier une compétence opérationnelle', + 'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', + + //Objectives + 'title_list_objective' => 'Liste des objectifs', + 'title_view_objective' => 'Détail de l\'objectif', + 'title_objective_delete' => 'Supprimer un objectif', + 'title_objective_update' => 'Modifier un objectif', + 'title_objective_new' => 'Ajouter un objectif', + + //User course + 'title_user_course_delete' => 'Supprimer un cours', + 'title_user_course_view' => 'Détails du cours', + 'title_user_course_plan_link' => 'Ajouter un cours associé', + + //Acquisition status + 'title_acquisition_status_view'=>'Afficher les détails des status d\'acquisition', + 'title_acquisition_status_save' =>'Ajouter un statut d\'acquisition', + 'title_acquisition_status_edit' => 'Modifier un statut d\'acquisition', + + //Comment + 'title_comment_save'=>'Ajouter un commentaire', + 'comment_delete' => 'souhaitez-vous supprimer le commentaire ?', + + // User Course Status + 'title_in_progress' => 'En cours', + 'title_successful' => 'Réussi', + 'title_failed' => 'Échouée', + 'title_suspended' => 'Suspendue', + 'title_abandoned' => 'Abandonnée', + + // Page titles + 'title_apprentice_list' => 'Liste des apprentis', + 'title_apprentice_update' => 'Modifier l\'apprenti', + 'title_apprentice_new' => 'Ajouter un apprenti', + 'title_apprentice_delete' => 'Supprimer un apprenti', + 'title_trainer_list' => 'Liste des formateurs', + 'title_trainer_update' => 'Modifier le formateur', + 'title_trainer_new' => 'Ajouter un formateur', + 'title_trainer_delete' => 'Supprimer un formateur', + 'title_course_plan_list' => 'Liste des plans de formation', + 'title_course_plan_update' => 'Modifier le plan de formation', + 'title_course_plan_new' => 'Ajouter un plan de formation', + 'title_course_plan_delete' => 'Supprimer le plan de formation', + 'title_competence_domain_list' => 'Liste des domaines de compétence', + 'title_competence_domain_update' => 'Modifier le domaine de compétence', + 'title_competence_domain_new' => 'Ajouter un domaine de compétence', + 'title_competence_domain_delete' => 'Supprimer le domaine de compétence', + 'title_operational_competence_list'=> 'Liste des compétences opérationnelles', + 'title_operational_competence_update' => 'Modifier la compétence opérationnelle', + 'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', + 'title_operational_competence_delete' => 'Supprimer la compétence opérationnelle', + 'title_objective_list' => 'Liste des objectifs', + 'title_objective_update' => 'Modifier l\'objectif', + 'title_objective_new' => 'Ajouter un objectif', + 'title_objective_delete' => 'Supprimer l\'objectif', + 'title_user_course_list' => 'Liste des formations liées', + 'title_user_course_update' => 'Modifer la formation liée', + 'title_user_course_new' => 'Ajouter une formation liée', + 'title_user_course_delete' => 'Supprimer la formation liée', + 'title_apprentice_link_list' => 'Liste des formateurs liés', + 'title_apprentice_link_update' => 'Modifer le formateur lié', + 'title_apprentice_link_new' =>'Ajouter un formateur lié', + 'title_apprentice_link_delete' =>'Supprimer le formateur lié', + 'title_acquisition_status_list' =>'Liste des statuts d\'acquisition', + 'title_acquisition_status_update'=>'Modifer le statut d\'acquisition', + 'title_acquisition_status_new' =>'Ajouter un statut d\'acquisition', + 'title_acquisition_status_delete'=>'Supprimer le statut d\'acquisition', + 'title_comment_list' =>'Liste des commentaires', + 'title_comment_update' =>'Modifer le commentaire', + 'title_comment_new' =>'Ajouter un commentaire', + 'title_comment_delete' =>'Supprimer le commentaire', + 'title_progress' => 'Avancement', + + // Details labels + 'details_apprentice' =>'Détail de l\'apprenti', + 'details_course_plan' =>'Détail du plan de formation', + 'details_competence_domain' =>'Détail du domaine de compétence', + 'details_operational_competence' =>'Détail de la compétence opérationnelle', + 'details_objective' =>'Détail de l\'objectif', + 'details_user_course' =>'Détail de la formation de l\'apprenti', + 'details_acquisition_status' =>'Détail du statut d\'acquisition', + 'details_progress' =>'En savoir plus', + + // Fields labels + 'field_apprentice_username' =>'Nom de l\'apprenti', + 'field_apprentice_date_creation' =>'Date de création de l\'apprenti', + 'field_followed_courses' =>'Formation(s) suivie(s)', + 'field_linked_competence_domains'=>'Domaines de compétences liés', + 'field_linked_operational_competence' =>'Compétences opérationnelles liés', + 'field_course_plan_formation_number' =>'Numéro du plan de formation', + 'field_course_plans_formation_numbers'=>'Numéros des plans de formations', + 'field_course_plan_official_name' =>'Nom du plan de formation', + 'field_course_plans_official_names' =>'Noms des plans de formation', + 'field_course_plan_date_begin' =>'Date de création du plan de formation', + 'field_course_plans_dates_begin' =>'Dates de création des plans de formation', + 'field_competence_domain_course_plan' =>'Plan de formation lié au domaine de compétence', + 'field_competence_domain_symbol' =>'Symbole du domaine de compétence', + 'field_competence_domains_symbols' =>'Symbole des domaines de compétences', + 'field_competence_domain_name' =>'Nom du domaine de compétence', + 'field_competence_domains_names' =>'Noms des domaines de compétences', + 'field_operational_competence_domain' =>'Domaine de compétence lié à la compétence opérationnelle', + 'field_operational_competence_name' =>'Nom de la compétence opérationnelle', + 'field_operational_competences_names' =>'Noms des compétences opérationnelles', + 'field_operational_competence_symbol' =>'Symbole de la compétence opérationnelle', + 'field_operational_competences_symbols' =>'Symboles des compétences opérationnelles', + 'field_operational_competence_methodologic' =>'Compétence méthodologique', + 'field_operational_competence_social' =>'Compétence sociale', + 'field_operational_competence_personal' =>'Compétence personnelle', + 'field_objective_operational_competence' =>'Compétence opérationnelle liée à l\'objectif', + 'field_objective_symbol' =>'Symboles de l\' objectif', + 'field_objectives_symbols' =>'Symbole des objectif', + 'field_objective_taxonomy' =>'Taxonomie de l\'objectif', + 'field_objectives_taxonomies' =>'Taxonomie des objectifs', + 'field_objective_name' =>'Nom de l\'objectif', + 'field_objectives_names' =>'Nom des objectifs', + 'field_linked_objectives' =>'Objectifs liés à la compétence opérationnelle', + 'field_user_course_date_begin' =>'Date du début de la formation', + 'field_user_course_date_end' =>'Date de fin de la formation', + 'field_user_course_course_plan' =>'Formation', + 'field_user_course_status' =>'Statut de la formation', + 'field_user_course_objectives_status' =>'Statuts d\'acquisition des objectifs', + 'field_comment' =>'Commentaire', + 'field_comment_creater' =>'Créateur du commentaire', + 'field_comment_date_creation' =>'Date de création du commentaire', + 'field_trainer_link' =>'Formateur(s) lié(s)', + 'field_trainers_name' =>'Nom des formateurs', + 'field_acquisition_level' =>'Niveau d\'acquisition', + 'field_id' =>'Identifiant', + 'field_symbol' =>'Symbole', + 'field_taxonomy' =>'Taxonomie', + 'field_linked_comments' =>'Commentaires liés', + + // Admin texts + 'admin_apprentices' =>'Apprentis', + 'admin_course_plans' =>'Plans de formations', + 'admin_competence_domains' =>'Domaines de compétences', + 'admin_objectives' =>'Objectifs', + 'admin_operational_competences' =>'Compétences opérationnelles', + + // Error messages + 'msg_err_course_plan_not_exist' =>'Le plan de formation sélectionné n\'existe pas', + 'msg_err_course_plan_not_unique' =>'Ce plan de formation est déjà utilisé, merci d\'en choisir un autre', + + // Other texts + 'course_plan' =>'Plan de formation', + 'course_plan_delete' =>'Supprimer ce plan de formation', + 'course_plan_delete_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront supprimées.', + 'course_plan_disable' =>'Désactiver ce plan de formation', + 'course_plan_disable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront désactivées.', + 'competence_domain' =>'Domaine de compétence', + 'competence_domain_delete' =>'Supprimer ce domaine de compétence', + 'competence_domain_delete_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront supprimées.', + 'competence_domain_disable' =>'Désactiver ce domaine de compétence', + 'competence_domain_disable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront désactivées.', + 'operational_competence' =>'Compétence opérationnelle', + 'operational_competence_delete' =>'Supprimer cette compétence opérationnelle', + 'operational_competence_delete_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront supprimées.', + 'operational_competence_disable' =>'Désactiver cette compétence opérationnelle', + 'operational_competence_disable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront désactivées.', + 'objective' =>'Objectif', + 'objective_delete' =>'Supprimer cet objectif', + 'objective_delete_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront supprimées.', + 'objective_disable' =>'Désactiver cet objectif', + 'objective_disable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront désactivées.', + 'user_course' =>'Formation liée', + 'user_course_delete' =>'Supprimer cette formation liée', + 'user_course_delete_explanation' =>'Toutes les informations concernant cette formation liée seront supprimées.', + 'user_course_disable' =>'Désactiver cette formation liée', + 'user_course_disable_explanation' =>'Toutes les informations concernant cette formation liée seront désactivées.', + 'apprentice_link' =>'Apprenti et formateur lié', + 'apprentice_link_delete' =>'Supprimer le lien entre cette apprenti et ce formateur', + 'apprentice_link_delete_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront supprimées.', + 'apprentice_link_disable' =>'Désactiver le lien entre cette apprenti et ce formateur', + 'apprentice_link_disable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront désactivées.', + 'acquisition_status' =>'Statut d\'acquisition', + 'acquisition_status_delete' =>'Supprimer le statut d\'acquisition', + 'acquisition_status_delete_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront supprimées.', + 'acquisition_status_disable' =>'Désactiver le statut d\'acquisition', + 'acquisition_status_disable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront désactivées.', + 'apprentice' =>'Apprenti', + 'trainer' =>'Formateur', + 'course_status' =>'Status des formations', + 'status' =>'Statut de la formation', + 'form_number_not_unique' =>'Le numéro du plan de formation existe déjà', + + 'course_plan_enable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront réactivées.', + 'competence_domain_enable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront réactivées.', + 'operational_competence_enable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront réactivées.', + 'objective_enable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront réactivées.', + 'user_course_enable_explanation' =>'Toutes les informations concernant cette formation liée seront réactivées.', + 'apprentice_link_enable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront réactivées.', + 'acquisition_status_enable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront réactivées.', +]; \ No newline at end of file diff --git a/orif/plafor/Models/acquisitionStatusModel.php b/orif/plafor/Models/acquisitionStatusModel.php index 9477be50..affb82a7 100644 --- a/orif/plafor/Models/acquisitionStatusModel.php +++ b/orif/plafor/Models/acquisitionStatusModel.php @@ -18,7 +18,7 @@ class AcquisitionStatusModel extends Model{ public function __construct(ConnectionInterface &$db = null, ValidationInterface $validation = null) { $this->validationRules= ['fk_acquisition_level'=>[ - 'label'=>'user_lang.field_acquisition_level', + 'label'=>'plafor_lang.field_acquisition_level', 'rules'=>'required|in_list['.implode(',', AcquisitionLevelModel::getInstance()->findColumn('id')).']' ]]; parent::__construct($db, $validation); diff --git a/orif/plafor/Models/commentModel.php b/orif/plafor/Models/commentModel.php index c5b4910b..2bd2a317 100644 --- a/orif/plafor/Models/commentModel.php +++ b/orif/plafor/Models/commentModel.php @@ -18,7 +18,7 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules=array( 'comment'=>[ - 'label' => 'user_lang.field_comment', + 'label' => 'plafor_lang.field_comment', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']', ] ); diff --git a/orif/plafor/Models/competenceDomainModel.php b/orif/plafor/Models/competenceDomainModel.php index 68340c96..13c14cf3 100644 --- a/orif/plafor/Models/competenceDomainModel.php +++ b/orif/plafor/Models/competenceDomainModel.php @@ -21,11 +21,11 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules= $rules = array( 'symbol'=>[ - 'label' => 'user_lang.field_competence_domain_symbol', + 'label' => 'plafor_lang.field_competence_domain_symbol', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']|checkCompetenceDomainAssociated[{symbol}]' ], 'name'=>[ - 'label' => 'user_lang.field_competence_domain_name', + 'label' => 'plafor_lang.field_competence_domain_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->COMPETENCE_DOMAIN_NAME_MAX_LENGTH.']' ], ); diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index 9066798f..9530b04f 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -24,15 +24,15 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface $this->validationRules= [ 'formation_number'=>[ - 'label' => 'user_lang.field_course_plan_formation_number', + 'label' => 'plafor_lang.field_course_plan_formation_number', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->FORMATION_NUMBER_MAX_LENGTH.']|numeric'."|checkFormPlanNumber[{id}]", ], 'official_name'=>[ - 'label' => 'user_lang.field_course_plan_official_name', + 'label' => 'plafor_lang.field_course_plan_official_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OFFICIAL_NAME_MAX_LENGTH.']', ], 'date_begin'=>[ - 'label' => 'user_lang.field_course_plan_date_begin', + 'label' => 'plafor_lang.field_course_plan_date_begin', 'rules' => 'required', ] ]; diff --git a/orif/plafor/Models/objectiveModel.php b/orif/plafor/Models/objectiveModel.php index 10850437..9893fdff 100644 --- a/orif/plafor/Models/objectiveModel.php +++ b/orif/plafor/Models/objectiveModel.php @@ -22,16 +22,16 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules= array( 'symbol'=>[ - 'label' => 'user_lang.field_objective_symbol', + 'label' => 'plafor_lang.field_objective_symbol', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']', ], 'taxonomy'=>[ - 'label' => 'user_lang.field_objective_taxonomy', + 'label' => 'plafor_lang.field_objective_taxonomy', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->TAXONOMY_MAX_VALUE.']', ], 'name'=>[ - 'label' => 'user_lang.field_objective_name', + 'label' => 'plafor_lang.field_objective_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OBJECTIVE_NAME_MAX_LENGTH.']', ] ); diff --git a/orif/plafor/Models/operationalCompetenceModel.php b/orif/plafor/Models/operationalCompetenceModel.php index cbb01092..a2316f88 100644 --- a/orif/plafor/Models/operationalCompetenceModel.php +++ b/orif/plafor/Models/operationalCompetenceModel.php @@ -22,23 +22,23 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules=$rules = array( 'symbol'=>[ - 'label' => 'user_lang.field_operational_competence_symbol', + 'label' => 'plafor_lang.field_operational_competence_symbol', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->SYMBOL_MAX_LENGTH.']' ], 'name'=>[ - 'label' => 'user_lang.field_operational_competence_name', + 'label' => 'plafor_lang.field_operational_competence_name', 'rules' => 'required|max_length['.config('\Plafor\Config\PlaforConfig')->OPERATIONAL_COMPETENCE_NAME_MAX_LENGTH.']' ], 'methodologic'=>[ - 'label' => 'user_lang.field_operational_methodologic', + 'label' => 'plafor_lang.field_operational_methodologic', 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' ], 'social'=>[ - 'label' => 'user_lang.field_operational_social', + 'label' => 'plafor_lang.field_operational_social', 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' ], 'personal'=>[ - 'label' => 'user_lang.field_operational_personal', + 'label' => 'plafor_lang.field_operational_personal', 'rules' => 'max_length['.config('\Plafor\Config\PlaforConfig')->SQL_TEXT_MAX_LENGTH.']' ], ); diff --git a/orif/plafor/Models/trainerApprenticeModel.php b/orif/plafor/Models/trainerApprenticeModel.php index 8e5d0e88..19f2bc79 100644 --- a/orif/plafor/Models/trainerApprenticeModel.php +++ b/orif/plafor/Models/trainerApprenticeModel.php @@ -20,7 +20,7 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules=array( 'trainer'=>[ - 'label' => 'user_lang.field_trainer_link', + 'label' => 'plafor_lang.field_trainer_link', 'rules' => 'required|numeric' ]); parent::__construct($db, $validation); diff --git a/orif/plafor/Models/userCourseModel.php b/orif/plafor/Models/userCourseModel.php index 7a5a0c9a..8cc9fb56 100644 --- a/orif/plafor/Models/userCourseModel.php +++ b/orif/plafor/Models/userCourseModel.php @@ -19,15 +19,15 @@ public function __construct(ConnectionInterface &$db = null, ValidationInterface { $this->validationRules=array( 'fk_course_plan'=>[ - 'label' => 'user_lang.course_plan', + 'label' => 'plafor_lang.course_plan', 'rules' => 'required|numeric', ], 'fk_status'=>[ - 'label' => 'user_lang.status', + 'label' => 'plafor_lang.status', 'rules' => 'required|numeric', ], 'date_begin'=>[ - 'label' => 'user_lang.field_user_course_date_begin', + 'label' => 'plafor_lang.field_user_course_date_begin', 'rules' => 'required', ] ); diff --git a/orif/plafor/Validation/PlaforRules.php b/orif/plafor/Validation/PlaforRules.php index d60cc77f..a1ce9af6 100644 --- a/orif/plafor/Validation/PlaforRules.php +++ b/orif/plafor/Validation/PlaforRules.php @@ -19,7 +19,7 @@ class PlaforRules public function checkFormPlanNumber($number, $course_plan_id,$datas,&$error){ if ($course_plan_id==0) if(count((new CoursePlanModel())->getWhere(['formation_number'=>$number])->getResultArray())>0){ - $error= lang('user_lang.form_number_not_unique'); + $error= lang('plafor_lang.form_number_not_unique'); return false; } diff --git a/orif/plafor/Views/acquisition_status/save.php b/orif/plafor/Views/acquisition_status/save.php index ae40ad10..8dc3ae68 100644 --- a/orif/plafor/Views/acquisition_status/save.php +++ b/orif/plafor/Views/acquisition_status/save.php @@ -29,7 +29,7 @@
    - 'form-label']); ?> + 'form-label']); ?>
    'field_acquisition_level', 'class' => 'form-control'] ); ?> diff --git a/orif/plafor/Views/acquisition_status/view.php b/orif/plafor/Views/acquisition_status/view.php index 0cf2c92b..cfb87416 100644 --- a/orif/plafor/Views/acquisition_status/view.php +++ b/orif/plafor/Views/acquisition_status/view.php @@ -1,36 +1,36 @@
    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    = config('\User\Config\UserConfig')->access_lvl_trainer) { ?> - +
    - - - + + + diff --git a/orif/plafor/Views/apprentice/delete.php b/orif/plafor/Views/apprentice/delete.php index 72288afa..9b29d8d6 100644 --- a/orif/plafor/Views/apprentice/delete.php +++ b/orif/plafor/Views/apprentice/delete.php @@ -5,11 +5,11 @@
    + + +
    +
    - - - - + + + + + - - - - + + - - + + + -
    +
    + +
    +
    +
    -
    + +
    + + diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index 2c11adeb..02e1f7f5 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -4,24 +4,24 @@

    -

    +

    -

    +

    -
    +
    - + @@ -36,8 +36,8 @@ - + +

    - +
    -
    - - - + + +
    - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/competence_domain/delete.php b/orif/plafor/Views/competence_domain/delete.php index 7898225a..2c7d63b3 100644 --- a/orif/plafor/Views/competence_domain/delete.php +++ b/orif/plafor/Views/competence_domain/delete.php @@ -6,9 +6,9 @@
    - + diff --git a/orif/plafor/Views/competence_domain/save.php b/orif/plafor/Views/competence_domain/save.php index da83a22b..9c1e8e5b 100644 --- a/orif/plafor/Views/competence_domain/save.php +++ b/orif/plafor/Views/competence_domain/save.php @@ -26,7 +26,7 @@
    -

    +

    @@ -50,14 +50,14 @@
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/competence_domain/view.php b/orif/plafor/Views/competence_domain/view.php index 549519f0..17f7f7dc 100644 --- a/orif/plafor/Views/competence_domain/view.php +++ b/orif/plafor/Views/competence_domain/view.php @@ -4,24 +4,24 @@

    -

    +

    -

    +

    -

    +

    -

    +

    @@ -33,8 +33,8 @@
    - - + + 0&&isset($apprentices[0])&&$apprentices[0]!=null){?> -

    +

    -

    +

    0&&isset($userCourseStatus[0])&&$userCourseStatus[0]!=null){?> -

    +

    -
    +
    - + diff --git a/orif/plafor/Views/course_plan/save.php b/orif/plafor/Views/course_plan/save.php index 64352708..abc8c165 100644 --- a/orif/plafor/Views/course_plan/save.php +++ b/orif/plafor/Views/course_plan/save.php @@ -60,11 +60,11 @@
    - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/course_plan/view.php b/orif/plafor/Views/course_plan/view.php index 9b089c92..d36e61f8 100644 --- a/orif/plafor/Views/course_plan/view.php +++ b/orif/plafor/Views/course_plan/view.php @@ -4,15 +4,15 @@

    -

    +

    -

    +

    -

    +

    @@ -24,8 +24,8 @@
    - - + +
    - + access_lvl_admin): ?> diff --git a/orif/plafor/Views/objective/save.php b/orif/plafor/Views/objective/save.php index 7a058d02..071f8c91 100644 --- a/orif/plafor/Views/objective/save.php +++ b/orif/plafor/Views/objective/save.php @@ -34,7 +34,7 @@
    -

    +

    @@ -61,16 +61,16 @@
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/objective/view.php b/orif/plafor/Views/objective/view.php index 0ebf2695..659efe02 100644 --- a/orif/plafor/Views/objective/view.php +++ b/orif/plafor/Views/objective/view.php @@ -5,11 +5,11 @@
    -

    +

    @@ -20,11 +20,11 @@
    -

    +

    -

    +

    @@ -35,23 +35,23 @@
    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    @@ -61,15 +61,15 @@

    -

    +

    -

    +

    -

    +

    diff --git a/orif/plafor/Views/operational_competence/delete.php b/orif/plafor/Views/operational_competence/delete.php index f2a6e214..1693ff63 100644 --- a/orif/plafor/Views/operational_competence/delete.php +++ b/orif/plafor/Views/operational_competence/delete.php @@ -5,9 +5,9 @@
    - + diff --git a/orif/plafor/Views/operational_competence/save.php b/orif/plafor/Views/operational_competence/save.php index 5820a528..94066edc 100644 --- a/orif/plafor/Views/operational_competence/save.php +++ b/orif/plafor/Views/operational_competence/save.php @@ -50,7 +50,7 @@
    -

    +

    @@ -76,20 +76,20 @@
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?> - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/operational_competence/view.php b/orif/plafor/Views/operational_competence/view.php index dc7aa86c..a03870bf 100644 --- a/orif/plafor/Views/operational_competence/view.php +++ b/orif/plafor/Views/operational_competence/view.php @@ -5,11 +5,11 @@
    -

    +

    @@ -20,11 +20,11 @@
    -

    +

    -

    +

    @@ -35,38 +35,38 @@

    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    - - - + + + diff --git a/orif/plafor/Views/user_course/save.php b/orif/plafor/Views/user_course/save.php index 3ede89cd..990f1d86 100644 --- a/orif/plafor/Views/user_course/save.php +++ b/orif/plafor/Views/user_course/save.php @@ -26,7 +26,7 @@
    -

    +

    @@ -52,21 +52,21 @@
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?>
    - 'form-label']); ?> + 'form-label']); ?>
    diff --git a/orif/plafor/Views/user_course/view.php b/orif/plafor/Views/user_course/view.php index a60412ff..3e13c4ce 100644 --- a/orif/plafor/Views/user_course/view.php +++ b/orif/plafor/Views/user_course/view.php @@ -4,23 +4,23 @@

    -

    +

    -

    +

    -

    +

    -

    +

    -

    +

    @@ -33,15 +33,15 @@ || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_lvl_trainer && in_array($_SESSION['user_id'], $trainers_id)) || ($_SESSION['user_access'] == config('\User\Config\UserConfig')->access_level_apprentice && $user_course['fk_user'] == $apprentice['id'])): ?>
    -

    +

    - - - - + + + + @@ -62,8 +62,8 @@ access_lvl_admin): ?>
    - "> - + "> +
    diff --git a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php index 462c1cbe..3596c2a4 100644 --- a/orif/user/Database/Migrations/2021-03-19-090829_add_user.php +++ b/orif/user/Database/Migrations/2021-03-19-090829_add_user.php @@ -50,7 +50,7 @@ public function up() //for plafor module //$seeder->call('\User\Database\Seeds\AddUserDatas'); // only for application - //$seeder->call('\Plafor\Database\Seeds\addUserDatas'); + $seeder->call('\Plafor\Database\Seeds\addUserDatas'); } /** diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index 22bbd955..ff036115 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -29,7 +29,6 @@ 'btn_disable_user' => 'Désactiver cet utilisateur', // Fields labels -'field_identity' => 'id', 'field_username' => 'Identifiant', 'field_password' => 'Mot de passe', 'field_email' => 'Addresse e-mail', @@ -68,175 +67,5 @@ 'user_update_usertype_himself' => 'Vous ne pouvez pas modifier votre propre type d\'utilisateur. Cette opération doit être faite par un autre administrateur.', 'user_delete_himself' => 'Vous ne pouvez pas désactiver ou supprimer votre propre compte. Cette opération doit être faite par un autre administrateur.', 'page_my_password_change' => 'Modification de mon mot de passe', -'title_administrator' => 'Administrateur', -'title_trainer' => 'Formateur', -'title_apprentice' => 'Apprenti', -// User Course Status -'title_in_progress' => 'En cours', -'title_successful' => 'Réussi', -'title_failed' => 'Échouée', -'title_suspended' => 'Suspendue', -'title_abandoned' => 'Abandonnée', - -// Page titles -'title_apprentice_list' => 'Liste des apprentis', -'title_apprentice_update' => 'Modifier l\'apprenti', -'title_apprentice_new' => 'Ajouter un apprenti', -'title_apprentice_delete' => 'Supprimer un apprenti', -'title_trainer_list' => 'Liste des formateurs', -'title_trainer_update' => 'Modifier le formateur', -'title_trainer_new' => 'Ajouter un formateur', -'title_trainer_delete' => 'Supprimer un formateur', -'title_course_plan_list' => 'Liste des plans de formation', -'title_course_plan_update' => 'Modifier le plan de formation', -'title_course_plan_new' => 'Ajouter un plan de formation', -'title_course_plan_delete' => 'Supprimer le plan de formation', -'title_competence_domain_list' => 'Liste des domaines de compétence', -'title_competence_domain_update' => 'Modifier le domaine de compétence', -'title_competence_domain_new' => 'Ajouter un domaine de compétence', -'title_competence_domain_delete' => 'Supprimer le domaine de compétence', -'title_operational_competence_list'=> 'Liste des compétences opérationnelles', -'title_operational_competence_update' => 'Modifier la compétence opérationnelle', -'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', -'title_operational_competence_delete' => 'Supprimer la compétence opérationnelle', -'title_objective_list' => 'Liste des objectifs', -'title_objective_update' => 'Modifier l\'objectif', -'title_objective_new' => 'Ajouter un objectif', -'title_objective_delete' => 'Supprimer l\'objectif', -'title_user_course_list' => 'Liste des formations liées', -'title_user_course_update' => 'Modifer la formation liée', -'title_user_course_new' => 'Ajouter une formation liée', -'title_user_course_delete' => 'Supprimer la formation liée', -'title_apprentice_link_list' => 'Liste des formateurs liés', -'title_apprentice_link_update' => 'Modifer le formateur lié', -'title_apprentice_link_new' =>'Ajouter un formateur lié', -'title_apprentice_link_delete' =>'Supprimer le formateur lié', -'title_acquisition_status_list' =>'Liste des statuts d\'acquisition', -'title_acquisition_status_update'=>'Modifer le statut d\'acquisition', -'title_acquisition_status_new' =>'Ajouter un statut d\'acquisition', -'title_acquisition_status_delete'=>'Supprimer le statut d\'acquisition', -'title_comment_list' =>'Liste des commentaires', -'title_comment_update' =>'Modifer le commentaire', -'title_comment_new' =>'Ajouter un commentaire', -'title_comment_delete' =>'Supprimer le commentaire', - -// Details labels -'details_apprentice' =>'Détail de l\'apprenti', -'details_course_plan' =>'Détail du plan de formation', -'details_competence_domain' =>'Détail du domaine de compétence', -'details_operational_competence' =>'Détail de la compétence opérationnelle', -'details_objective' =>'Détail de l\'objectif', -'details_user_course' =>'Détail de la formation de l\'apprenti', -'details_acquisition_status' =>'Détail du statut d\'acquisition', - -// Fields labels -'field_apprentice_username' =>'Nom de l\'apprenti', -'field_apprentice_date_creation' =>'Date de création de l\'apprenti', -'field_followed_courses' =>'Formation(s) suivie(s)', -'field_linked_competence_domains'=>'Domaines de compétences liés', -'field_linked_operational_competence' =>'Compétences opérationnelles liés', -'field_course_plan_formation_number' =>'Numéro du plan de formation', -'field_course_plans_formation_numbers'=>'Numéros des plans de formations', -'field_course_plan_official_name' =>'Nom du plan de formation', -'field_course_plans_official_names' =>'Noms des plans de formation', -'field_course_plan_date_begin' =>'Date de création du plan de formation', -'field_course_plans_dates_begin' =>'Dates de création des plans de formation', -'field_competence_domain_course_plan' =>'Plan de formation lié au domaine de compétence', -'field_competence_domain_symbol' =>'Symbole du domaine de compétence', -'field_competence_domains_symbols' =>'Symbole des domaines de compétences', -'field_competence_domain_name' =>'Nom du domaine de compétence', -'field_competence_domains_names' =>'Noms des domaines de compétences', -'field_operational_competence_domain' =>'Domaine de compétence lié à la compétence opérationnelle', -'field_operational_competence_name' =>'Nom de la compétence opérationnelle', -'field_operational_competences_names' =>'Noms des compétences opérationnelles', -'field_operational_competence_symbol' =>'Symbole de la compétence opérationnelle', -'field_operational_competences_symbols' =>'Symboles des compétences opérationnelles', -'field_operational_competence_methodologic' =>'Compétence méthodologique', -'field_operational_competence_social' =>'Compétence sociale', -'field_operational_competence_personal' =>'Compétence personnelle', -'field_objective_operational_competence' =>'Compétence opérationnelle liée à l\'objectif', -'field_objective_symbol' =>'Symboles de l\' objectif', -'field_objectives_symbols' =>'Symbole des objectif', -'field_objective_taxonomy' =>'Taxonomie de l\'objectif', -'field_objectives_taxonomies' =>'Taxonomie des objectifs', -'field_objective_name' =>'Nom de l\'objectif', -'field_objectives_names' =>'Nom des objectifs', -'field_linked_objectives' =>'Objectifs liés à la compétence opérationnelle', -'field_user_course_date_begin' =>'Date du début de la formation', -'field_user_course_date_end' =>'Date de fin de la formation', -'field_user_course_course_plan' =>'Formation', -'field_user_course_status' =>'Statut de la formation', -'field_user_course_objectives_status' =>'Statuts d\'acquisition des objectifs', -'field_comment' =>'Commentaire', -'field_comment_creater' =>'Créateur du commentaire', -'field_comment_date_creation' =>'Date de création du commentaire', -'field_trainer_link' =>'Formateur(s) lié(s)', -'field_trainers_name' =>'Nom des formateurs', -'field_acquisition_level' =>'Niveau d\'acquisition', -'field_id' =>'Identifiant', -'field_symbol' =>'Symbole', -'field_taxonomy' =>'Taxonomie', -'field_linked_comments' =>'Commentaires liés', - -// Admin texts -'admin_apprentices' =>'Apprentis', -'admin_course_plans' =>'Plans de formations', -'admin_competence_domains' =>'Domaines de compétences', -'admin_objectives' =>'Objectifs', -'admin_operational_competences' =>'Compétences opérationnelles', - -// Error messages -'msg_err_course_plan_not_exist' =>'Le plan de formation sélectionné n\'existe pas', -'msg_err_course_plan_not_unique' =>'Ce plan de formation est déjà utilisé, merci d\'en choisir un autre', - -// Other texts -'course_plan' =>'Plan de formation', -'course_plan_delete' =>'Supprimer ce plan de formation', -'course_plan_delete_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront supprimées.', -'course_plan_disable' =>'Désactiver ce plan de formation', -'course_plan_disable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront désactivées.', -'competence_domain' =>'Domaine de compétence', -'competence_domain_delete' =>'Supprimer ce domaine de compétence', -'competence_domain_delete_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront supprimées.', -'competence_domain_disable' =>'Désactiver ce domaine de compétence', -'competence_domain_disable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront désactivées.', -'operational_competence' =>'Compétence opérationnelle', -'operational_competence_delete' =>'Supprimer cette compétence opérationnelle', -'operational_competence_delete_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront supprimées.', -'operational_competence_disable' =>'Désactiver cette compétence opérationnelle', -'operational_competence_disable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront désactivées.', -'objective' =>'Objectif', -'objective_delete' =>'Supprimer cet objectif', -'objective_delete_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront supprimées.', -'objective_disable' =>'Désactiver cet objectif', -'objective_disable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront désactivées.', -'user_course' =>'Formation liée', -'user_course_delete' =>'Supprimer cette formation liée', -'user_course_delete_explanation' =>'Toutes les informations concernant cette formation liée seront supprimées.', -'user_course_disable' =>'Désactiver cette formation liée', -'user_course_disable_explanation' =>'Toutes les informations concernant cette formation liée seront désactivées.', -'apprentice_link' =>'Apprenti et formateur lié', -'apprentice_link_delete' =>'Supprimer le lien entre cette apprenti et ce formateur', -'apprentice_link_delete_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront supprimées.', -'apprentice_link_disable' =>'Désactiver le lien entre cette apprenti et ce formateur', -'apprentice_link_disable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront désactivées.', -'acquisition_status' =>'Statut d\'acquisition', -'acquisition_status_delete' =>'Supprimer le statut d\'acquisition', -'acquisition_status_delete_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront supprimées.', -'acquisition_status_disable' =>'Désactiver le statut d\'acquisition', -'acquisition_status_disable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront désactivées.', -'apprentice' =>'Apprenti', -'trainer' =>'Formateur', -'course_status' =>'Status des formations', -'status' =>'Statut de la formation', -'form_number_not_unique' =>'Le numéro du plan de formation existe déjà', - -'course_plan_enable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront réactivées.', -'competence_domain_enable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront réactivées.', -'operational_competence_enable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront réactivées.', -'objective_enable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront réactivées.', -'user_course_enable_explanation' =>'Toutes les informations concernant cette formation liée seront réactivées.', -'apprentice_link_enable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront réactivées.', -'acquisition_status_enable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront réactivées.', ]; \ No newline at end of file diff --git a/orif/welcome/Views/welcome_message.php b/orif/welcome/Views/welcome_message.php index 9f676b06..64cbe9a1 100644 --- a/orif/welcome/Views/welcome_message.php +++ b/orif/welcome/Views/welcome_message.php @@ -328,6 +328,7 @@ function toggleMenu() { + diff --git a/public/css/progressbarstyle.css b/public/css/progressbarstyle.css new file mode 100644 index 00000000..f074ac37 --- /dev/null +++ b/public/css/progressbarstyle.css @@ -0,0 +1,236 @@ + +#progressContainer { + + display: flex; + + transition: all 0.08s ease-in-out; + + margin-top: 10px; + + border: #AE9B70 3px solid; + + width: 100%; + + height: 30px; + + max-height: 200px; + + border-radius: 10px; + + overflow: visible !important; + + flex-direction: row; + +} +.positionedElement { + + display: block; + + height: 100%; + width:0!important; + + transition: width,transform 0.2s; + + transform: translateY(30px)!important; + +} +.positionedElement:nth-child(2n){ + transform: translateY(-30px)!important; + transition: width,transform 0.2s; + +} +.positionedElement:first-child{ + border-radius: 5px 0 0 5px; +} +.positionedElement:last-child{ + border-radius: 0 5px 5px 0; + +} +.frame{ + z-index: 50; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.7); +} +.frame main { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 70%; + height: 60vh; + background-color: white; + padding:0 10px 0 10px; + z-index: 0; +} +.frame .hbar{ + display: flex; + flex-direction: column; + justify-content: flex-end; + width: 100%; + height: 90%; + border: 2px #AE9B70 solid; + border-radius: 20px; + transition: all 0.3s; + min-height: 191px!important; + min-width: 40px; + max-width: 206px; + overflow-x: hidden; + background-color: white; + + + +} +.hbar .progress-bar{ + align-self: flex-start!important; + transition: all 1s; +} +.progress-root{ + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + text-align: center; + transition: all 0.5s; + background-position: center; + padding: 50px; + min-height: 191px!important; + max-height: 400px; +} +.iprogress-root:nth-of-type(1){ +} +.iprogress-root:nth-of-type(2){ + transform: translateX(-100%); +} +.iprogress-root:nth-of-type(3){ + transform: translateX(-200%); +} +.iprogress-root:nth-of-type(4){ + transform: translateX(-300%); + +} +.progress-root img{ + position: absolute; + z-index: -1; + object-fit: contain; + width: 0; + height: 0; + transform-origin: center; + transition: width, height 0.2s ease-in-out; + transform: translateX(5px); +} +.progress-bar{ + width:100%; +} +.meter{ + position: relative; + display: flex!important; + flex-direction: column; + justify-content: space-between; + width: 10px; + height: 90%!important; + min-height: 191px!important; + z-index: -1; + +} +.meter span{ + width: 10px; + height: 5px; + background-color: #ae9b70; + display: block; + border-right: 30px #ae9b70 solid; + min-height: 1px; + max-height: 5px; + box-sizing: border-box; + text-align: left; + margin-right: 20px; +} +.meter h5{ + position: absolute; + left: -25px; + overflow: visible; + float: left; + font-size: 0.8rem; +} +.meter h5:nth-child(1n+2){ + right: 10px; +} +.meter h5:nth-child(1){ + top:-3% +} +.meter h5:nth-child(3){ + top: 7%; +} +.meter h5:nth-child(5){ + top:17%; +} +.meter h5:nth-child(7){ + top:26%; +} +.meter h5:nth-child(9){ + top:36%; +} +.meter h5:nth-child(11){ + top:46%; +} +.meter h5:nth-child(13){ + top:56%; +} +.meter h5:nth-child(15){ + top:65%; +} +.meter h5:nth-child(17){ + top:75%; +} +.meter h5:nth-child(19){ + top:85%; +} +.meter span:first-of-type{ + z-index: -1; +} +.meter span:nth-child(11){ + display: none!important; +} +#firstbar{ + transition-delay: 1.5s; + +} +#secondbar{ + transition-delay: 1s; + +} +#thirdbar{ + transition-delay: 0.5s; +} +#fourthbar{ +} +@media screen and (max-width: 600px){ + .frame main{ + flex-direction: column; + width: 90%!important; + height: auto; + } + .iprogress-root:nth-of-type(1){ + } + .iprogress-root:nth-of-type(2){ + transform: translateY(-100%); + } + .iprogress-root:nth-of-type(3){ + transform: translateY(-200%); + } + .iprogress-root:nth-of-type(4){ + transform: translateY(-300%); + + } + +} \ No newline at end of file diff --git a/public/images/floumin.svg b/public/images/floumin.svg new file mode 100644 index 00000000..f8f40e65 --- /dev/null +++ b/public/images/floumin.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/public/jsComponents/progressStats.js b/public/jsComponents/progressStats.js new file mode 100644 index 00000000..99d5d2ee --- /dev/null +++ b/public/jsComponents/progressStats.js @@ -0,0 +1,231 @@ +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ProgressStats = function (_React$Component) { + _inherits(ProgressStats, _React$Component); + + function ProgressStats(props) { + _classCallCheck(this, ProgressStats); + + var _this = _possibleConstructorReturn(this, (ProgressStats.__proto__ || Object.getPrototypeOf(ProgressStats)).call(this, props)); + + _this.element = []; + + _this.mainframe = React.createRef(); + _this.playanim = _this.playanim.bind(_this); + for (var i = 0; i < _this.props.elements.length; i++) { + _this.element.push(React.createElement(Barelement, { animatableImagePath: _this.props.animatableImagePath, transitionDelay: i + 's', backgroundColor: _this.props.colors[i], elements: _this.props.elements[i] })); + } + + return _this; + } + + _createClass(ProgressStats, [{ + key: 'render', + value: function render() { + var _this2 = this; + + return React.createElement( + 'div', + { id: 'proressStats' }, + React.createElement( + 'div', + { className: 'frame' }, + React.createElement( + 'main', + { ref: this.mainframe }, + this.element, + React.createElement('input', { type: 'button', className: 'btn btn-primary', onClick: function onClick() { + _this2.playanim(); + }, value: 'salut' }) + ) + ) + ); + } + }, { + key: 'playanim', + value: function playanim() { + var _this3 = this; + + var i = 0; + var interval = setInterval(function () { + _this3.mainframe.current.querySelectorAll('.progress-root')[i].addEventListener('transitionrun', function (e) { + e.target.childNodes.forEach(function (element) { + if (element.tagName === "IMG") { + element.style.setProperty('width', '150%', 'important'); + element.style.setProperty('height', '150%', 'important'); + element.addEventListener('transitionend', function (e) { + e.target.style = ''; + + e.target.style.setProperty('transition', 'all 0.2s', 'important'); + e.target.style.setProperty('transition-delay', '0.1s', 'important'); + }); + } + }); + }); + _this3.mainframe.current.querySelectorAll('.progress-root')[i].style.transform = 'unset'; + //delete interval + i++; + if (i === 4) { + clearInterval(interval); + } + }, 200); + } + }]); + + return ProgressStats; +}(React.Component); + +var Meter = function Meter() { + return React.createElement( + 'div', + { className: 'meter', style: { display: 'flex', flexDirection: 'column' } }, + React.createElement( + 'h5', + null, + '100' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '90' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '80' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '70' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '60' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '50' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '40' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '30' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '20' + ), + React.createElement('span', null), + React.createElement( + 'h5', + null, + '10' + ), + React.createElement('span', null), + React.createElement('span', { style: { opacity: '0' } }) + ); +}; + +var Barelement = function (_React$Component2) { + _inherits(Barelement, _React$Component2); + + function Barelement(props) { + _classCallCheck(this, Barelement); + + var _this4 = _possibleConstructorReturn(this, (Barelement.__proto__ || Object.getPrototypeOf(Barelement)).call(this, props)); + + _this4.progressContainer = React.createRef(); + _this4.intervalArray = []; + _this4.state = { + elements: [], + hlayouts: [] + }; + return _this4; + } + + _createClass(Barelement, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this5 = this; + + var i = this.intervalArray.length; + + this.intervalArray.push({ index: 0, + interval: setInterval(function () { + if (_this5.intervalArray[i].index >= _this5.props.elements) { + if (_this5.state.elements.length % 5 !== 0) _this5.setState({ hlayouts: [React.createElement( + Hlayout, + null, + _this5.state.elements.slice(_this5.state.elements.length - _this5.state.elements.length % 5) + )].concat(_this5.state.hlayouts) }); + + clearInterval(_this5.intervalArray[i].interval); + } else { + if (_this5.state.elements.length % 5 === 0 && _this5.state.elements.length !== 0) { + _this5.setState({ hlayouts: _this5.state.hlayouts.concat(React.createElement( + Hlayout, + null, + _this5.state.elements.slice(_this5.state.elements.length - 5) + )) }); + } + _this5.setState({ + elements: _this5.state.elements.concat(React.createElement('span', { style: { backgroundColor: _this5.props.backgroundColor, transitionDelay: _this5.props.transitionDelay, width: '20%', height: '100%', display: 'block', borderRadius: '4px', boxSizing: 'border-box', padding: '0.5px', backgroundClip: 'content-box' } })) + }); + } + _this5.intervalArray[i].index++; + }, 20) }); + } + }, { + key: 'render', + value: function render() { + return React.createElement( + 'div', + { className: 'progress-root iprogress-root' }, + React.createElement(Meter, null), + React.createElement('img', { src: this.props.animatableImagePath }), + React.createElement( + 'div', + { className: 'hbar', ref: this.progressContainer }, + React.createElement( + 'div', + { style: { display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', width: '100%', height: '100%' } }, + this.state.hlayouts + ) + ) + ); + } + }]); + + return Barelement; +}(React.Component); + +var Hlayout = function Hlayout(props) { + return React.createElement( + 'span', + { style: { width: '100%', height: '5%', display: 'flex', flexDirection: 'row', transition: 'all 0.5s' } }, + props.children + ); +}; \ No newline at end of file diff --git a/public/jsComponents/progressbar.js b/public/jsComponents/progressbar.js new file mode 100644 index 00000000..2116eff9 --- /dev/null +++ b/public/jsComponents/progressbar.js @@ -0,0 +1,170 @@ +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Progressbar = function (_React$Component) { + _inherits(Progressbar, _React$Component); + + function Progressbar(props) { + _classCallCheck(this, Progressbar); + + var _this = _possibleConstructorReturn(this, (Progressbar.__proto__ || Object.getPrototypeOf(Progressbar)).call(this, props)); + + _this.displayProgress = _this.displayProgress.bind(_this); + _this.removeProgress = _this.removeProgress.bind(_this); + _this.showDetails = _this.showDetails.bind(_this); + _this.progressContainer = React.createRef(); + return _this; + } + + _createClass(Progressbar, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.displayProgress(); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + return React.createElement( + 'span', + { style: { backgroundColor: 'unset!important' } }, + React.createElement('div', { id: 'progressContainer', ref: this.progressContainer }), + React.createElement( + 'a', + { style: { marginLeft: '10px', marginTop: '5px' }, className: 'btn btn-secondary', onClick: function onClick(ev) { + _this2.showDetails(ev); + } }, + this.props.detailsLbl + ), + React.createElement('span', null) + ); + } + /** + * this function is called when need to load progressBar + * @param props + */ + + }, { + key: 'displayProgress', + value: function displayProgress() { + var _this3 = this; + + //Get container for progressbar + this.progressContainer.current.style.animation = ''; + //set value of container to empty + this.progressContainer.current.innerHTML = ''; + var total = 0; + //element color is a map indexed by color + var elementColor = new Map(); + //add total number of objectives to total variable + this.props.colors.forEach(function (color, idx) { + total += parseInt(_this3.props.elements[idx]); + //if there is many element with same color add to number + if (elementColor.get(color) != null) { + elementColor.set(color, elementColor.get(color) + parseInt(_this3.props.elements[idx])); + } else { + elementColor.set(color, parseInt(_this3.props.elements[idx])); + } + }); + //width to use for one element + var percentUnit = Math.round(100 / total * 100) / 100; + // array containing dom node + var elementArray = []; + var elementToGroup = this.props.elementToGroup != null ? this.props.elementToGroup : 10; + elementColor.forEach(function (number, color) { + var i = 0; + for (var _i = 0; _i < number; _i++) { + var node = document.createElement('div'); + node.style.backgroundColor = color.toString(); + node.classList.add('positionedElement'); + node.style.getPropertyValue('width') == "" ? node.style.setProperty('width', percentUnit + '%', 'important') : ''; + if (node.isEqualNode(elementArray[elementArray.length - 1]) && (_i + 1) % elementToGroup === 0) { + node.style.setProperty('width', elementToGroup * percentUnit + '%', 'important'); + for (var nbr = 0; nbr < elementToGroup - 1; nbr++) { + elementArray.pop(); + } + } + elementArray.push(node); + } + }); + + var i = 0; + var interval = setInterval(function (e) { + if (i <= elementArray.length) { + //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; + i === elementArray.length - 1 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : i - 1 >= 0 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : ''; + try { + _this3.progressContainer.current.appendChild(elementArray[i]); + } catch (e) { + i++; + } + i++; + } else { + clearInterval(interval); + var testedColor = void 0; + var arraywidth = new Map(); + for (var _i2 = 0; _i2 < _this3.progressContainer.current.childNodes.length; _i2++) { + var child = _this3.progressContainer.current.childNodes[_i2]; + //When the child has the same bkcolor as last element, increase width + if (child.style.backgroundColor == testedColor) { + arraywidth.set(testedColor, arraywidth.get(testedColor) + Math.round(parseFloat(child.style.width) * 10) / 10); + } + //else add element to arraywidth + else { + testedColor = child.style.backgroundColor; + arraywidth.set(testedColor, Math.round(parseFloat(child.style.width) * 10) / 10); + } + testedColor = child.style.backgroundColor; + } + _this3.progressContainer.current.innerHTML = ''; + arraywidth.forEach(function (size, color) { + var node = document.createElement('div'); + node.classList.add('positionedElement'); + node.style.backgroundColor = color; + node.style.setProperty('width', size + '%', 'important'); + node.style.setProperty('transform', 'translate(0)', 'important'); + _this3.progressContainer.current.appendChild(node); + }); + } + }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); + } + /** + * this function is called when need to reset progressBar + * @param props + */ + + }, { + key: 'removeProgress', + value: function removeProgress() { + var nodeList = document.querySelectorAll('.positionedElement'); + var i = nodeList.length - 1; + var interval = setInterval(function () { + if (i >= 0) { + nodeList.item(i).style = ''; + nodeList.item(i).style.transition = 'all 1s'; + } else { + clearInterval(interval); + } + i--; + }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); + } + /** + * this function is called when need to show details (callback) + * @param ev the event to handle + */ + + }, { + key: 'showDetails', + value: function showDetails(ev) { + this.props.clickAction != null ? this.props.clickAction(ev.target.nextSibling, this.props.colors, this.props.elements) : null; + } + }]); + + return Progressbar; +}(React.Component); \ No newline at end of file diff --git a/src/progressStats.js b/src/progressStats.js new file mode 100644 index 00000000..bcf6826a --- /dev/null +++ b/src/progressStats.js @@ -0,0 +1,128 @@ +class ProgressStats extends React.Component{ + element=[]; + constructor(props) { + super(props); + this.mainframe=React.createRef(); + this.playanim=this.playanim.bind(this); + for(let i=0;i) + } + + + + + } + render(){ + return ( +
    +
    +
    + {this.element} + {this.playanim()}} value={'salut'}/> +
    +
    +
    + ); + } + playanim(){ + let i=0 + const interval=setInterval(()=> { + this.mainframe.current.querySelectorAll('.progress-root')[i] + .addEventListener('transitionrun', (e) => { + e.target.childNodes.forEach((element) => { + if (element.tagName === "IMG") { + element.style.setProperty('width', '150%', 'important'); + element.style.setProperty('height', '150%', 'important'); + element.addEventListener('transitionend', (e) => { + e.target.style = ''; + + e.target.style.setProperty('transition', 'all 0.2s', 'important'); + e.target.style.setProperty('transition-delay', '0.1s', 'important') + + }) + + + } + }) + }) + this.mainframe.current.querySelectorAll('.progress-root')[i].style.transform = 'unset' + //delete interval + i++; + if (i===4){ + clearInterval(interval); + } + },200); + + } + + +} +const Meter = ()=>{ + return ( +
    100
    90
    80
    70
    60
    50
    40
    30
    20
    10
    + + ) +} +class Barelement extends React.Component{ + + constructor(props){ + super(props); + this.progressContainer=React.createRef(); + this.intervalArray=[]; + this.state={ + elements:[], + hlayouts:[] + } + } + + + componentDidMount(){ + const i=this.intervalArray.length; + + this.intervalArray.push({index:0, + interval:setInterval(()=>{ + if (this.intervalArray[i].index>=this.props.elements){ + if(this.state.elements.length%5!==0) + this.setState({hlayouts:[{this.state.elements.slice(this.state.elements.length-(this.state.elements.length%5))}].concat(this.state.hlayouts)}); + + clearInterval(this.intervalArray[i].interval); + } + else{ + if (this.state.elements.length%5===0 && this.state.elements.length!==0){ + this.setState({hlayouts:this.state.hlayouts.concat({this.state.elements.slice(this.state.elements.length-5)})}); + } + this.setState({ + elements:this.state.elements.concat() + }) + + } + this.intervalArray[i].index++; + + },20)}); + + + + } + render() { + return ( +
    + + +
    +
    + {this.state.hlayouts} +
    +
    + + +
    + ); + } +} +const Hlayout=(props)=>{ + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/src/progressbar.js b/src/progressbar.js new file mode 100644 index 00000000..c89a3179 --- /dev/null +++ b/src/progressbar.js @@ -0,0 +1,137 @@ +class Progressbar extends React.Component{ + constructor(props) { + super(props); + this.displayProgress=this.displayProgress.bind(this); + this.removeProgress=this.removeProgress.bind(this); + this.showDetails=this.showDetails.bind(this); + this.progressContainer=React.createRef() + } + componentDidMount(){ + this.displayProgress(); + } + render(){ + return ( + +
    +
    + {this.showDetails(ev);} + }>{this.props.detailsLbl} +
    + ) +} + /** + * this function is called when need to load progressBar + * @param props + */ + displayProgress() { + //Get container for progressbar + this.progressContainer.current.style.animation = ''; + //set value of container to empty + this.progressContainer.current.innerHTML = ''; + let total = 0; + //element color is a map indexed by color + let elementColor = new Map(); + //add total number of objectives to total variable + this.props.colors.forEach((color, idx) => { + total += parseInt(this.props.elements[idx]); + //if there is many element with same color add to number + if (elementColor.get(color) != null) { + elementColor.set(color, elementColor.get(color) + parseInt(this.props.elements[idx])); + } else { + elementColor.set(color, parseInt(this.props.elements[idx])); + } + }); + //width to use for one element + const percentUnit = Math.round(100 / total * 100)/100; + // array containing dom node + let elementArray = []; + const elementToGroup=this.props.elementToGroup!=null?this.props.elementToGroup:10; + elementColor.forEach((number, color) => { + let i = 0; + for (let i = 0; i < number; i++) { + let node = document.createElement('div'); + node.style.backgroundColor = (color.toString()); + node.classList.add('positionedElement'); + node.style.getPropertyValue('width')==""?node.style.setProperty('width',percentUnit+'%','important'):'' + if (node.isEqualNode(elementArray[elementArray.length-1])&&(i+1)%elementToGroup===0){ + node.style.setProperty('width',(elementToGroup*percentUnit)+'%','important') + for (let nbr=0;nbr { + if (i <= elementArray.length) { + //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; + i===elementArray.length-1?elementArray[i-1].style.setProperty('transform','translate(0)','important'):i-1>=0?elementArray[i-1].style.setProperty('transform','translate(0)','important'):''; + try { + this.progressContainer.current.appendChild(elementArray[i]); + }catch (e){ + i++; + } + i++; + } + else{ + clearInterval(interval); + let testedColor; + const arraywidth=new Map(); + for (let i=0;i{ + const node=document.createElement('div'); + node.classList.add('positionedElement'); + node.style.backgroundColor=color; + node.style.setProperty('width',(size)+'%','important'); + node.style.setProperty('transform','translate(0)','important'); + this.progressContainer.current.appendChild(node); + }) + + + } + }, this.props.timeToRefresh!=null?this.props.timeToRefresh:10); + + } + /** + * this function is called when need to reset progressBar + * @param props + */ + removeProgress(){ + let nodeList=document.querySelectorAll('.positionedElement'); + let i=nodeList.length-1; + const interval=setInterval(()=>{ + if (i>=0){ + nodeList.item(i).style=''; + nodeList.item(i).style.transition='all 1s'; + } + else{ + clearInterval(interval); + } + i--; + },this.props.timeToRefresh!=null?this.props.timeToRefresh:10) + } + /** + * this function is called when need to show details (callback) + * @param ev the event to handle + */ + showDetails(ev){ + this.props.clickAction!=null? + this.props.clickAction(ev.target.nextSibling,this.props.colors,this.props.elements):null + } +} From 5926933d56d048230a52173b73888395421a4bd7 Mon Sep 17 00:00:00 2001 From: maximeor <77323615+maximeor@users.noreply.github.com> Date: Fri, 1 Oct 2021 15:04:52 +0200 Subject: [PATCH 111/172] Add migration controller for deployment --- app/Controllers/BaseController.php | 11 +- composer.json | 5 +- orif/common/Config/AdminPanelConfig.php | 5 +- orif/common/Language/fr/common_lang.php | 8 +- orif/common/Views/adminMenu.php | 5 +- orif/plafor/Config/PlaforConfig.php | 1 + orif/plafor/Config/Routes.php | 2 + orif/plafor/Controllers/Migration.php | 52 +++++++++ orif/plafor/Views/migrationIndex.php | 142 ++++++++++++++++++++++++ writable/appStatus.json | 1 + 10 files changed, 218 insertions(+), 14 deletions(-) create mode 100644 orif/plafor/Controllers/Migration.php create mode 100644 orif/plafor/Views/migrationIndex.php create mode 100644 writable/appStatus.json diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 4620ea54..ab7ec528 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -131,12 +131,15 @@ public function display_view($view_parts, $data = NULL) // Display common headers echo view('Common\header', $data); + + // Display login bar echo view('Common\login_bar'); - foreach (config('Common\Config\AdminPanelConfig')->views as $view){ - if (strstr(current_url(),$view['pageLink'])) { - $data['title']=lang($view['title']); - echo view('\Common\Adminmenu'); + // Display admin menu if appropriate + foreach (config('Common\Config\AdminPanelConfig')->tabs as $tab){ + if (strstr(current_url(), $tab['pageLink'])) { + $data['title'] = lang($tab['title']); + echo view('\Common\Adminmenu'); } } diff --git a/composer.json b/composer.json index 362cc865..a1f433b4 100644 --- a/composer.json +++ b/composer.json @@ -12,8 +12,9 @@ "ext-mbstring": "*", "kint-php/kint": "^3.3", "laminas/laminas-escaper": "^2.6", - "psr/log": "^1.1" - }, + "psr/log": "^1.1", + "ext-mysqli": "*" + }, "require-dev": { "codeigniter4/codeigniter4-standard": "^1.0", "fakerphp/faker": "^1.9", diff --git a/orif/common/Config/AdminPanelConfig.php b/orif/common/Config/AdminPanelConfig.php index 6e2915ce..60cca718 100644 --- a/orif/common/Config/AdminPanelConfig.php +++ b/orif/common/Config/AdminPanelConfig.php @@ -15,7 +15,7 @@ class AdminPanelConfig extends \CodeIgniter\Config\BaseConfig { /** here come the views details for adminPanel */ - public $views=[ + public $tabs=[ /** eg... */ ['label'=>'user_lang.title_user_list','title'=>'user_lang.title_user_list','pageLink'=>'user/admin/list_user'], ['label'=>'plafor_lang.title_apprentice_list','title'=>'plafor_lang.title_apprentice_list','pageLink'=>'plafor/apprentice/list_apprentice'], @@ -23,8 +23,5 @@ class AdminPanelConfig extends \CodeIgniter\Config\BaseConfig ['label'=>'plafor_lang.admin_competence_domains','title'=>'plafor_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], ['label'=>'plafor_lang.admin_operational_competences','title'=>'plafor_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], ['label'=>'plafor_lang.admin_objectives','title'=>'plafor_lang.admin_objectives','pageLink'=>'plafor/admin/list_objective'], - - ]; - } \ No newline at end of file diff --git a/orif/common/Language/fr/common_lang.php b/orif/common/Language/fr/common_lang.php index b260d4ee..fd25fdf7 100644 --- a/orif/common/Language/fr/common_lang.php +++ b/orif/common/Language/fr/common_lang.php @@ -14,6 +14,7 @@ // Page titles 'page_prefix' => 'Plafor', + // Buttons 'btn_admin' => 'Administration', 'btn_login' => 'Se connecter', @@ -38,5 +39,10 @@ 'no' => 'Non', 'all_m' => 'Tous', 'all_f' => 'Toutes', - 'reactivate' => 'Réactiver' + 'reactivate' => 'Réactiver', + 'initialization' => 'Initialisation', + 'initialize' => 'Initialiser', + 'for' => 'Pour', + 'click_on_the_button' => 'Cliquez sur le bouton', + 'above' => 'Ci-dessous' ]; \ No newline at end of file diff --git a/orif/common/Views/adminMenu.php b/orif/common/Views/adminMenu.php index d5659bb7..8e971e3f 100644 --- a/orif/common/Views/adminMenu.php +++ b/orif/common/Views/adminMenu.php @@ -1,9 +1,8 @@
    - views as $view){?> - - + tabs as $tab){?> +
    diff --git a/orif/plafor/Config/PlaforConfig.php b/orif/plafor/Config/PlaforConfig.php index 85ca238d..ecd59e0a 100644 --- a/orif/plafor/Config/PlaforConfig.php +++ b/orif/plafor/Config/PlaforConfig.php @@ -20,4 +20,5 @@ class PlaforConfig extends BaseConfig public $TAXONOMY_MAX_VALUE=6; public $OBJECTIVE_NAME_MAX_LENGTH=350; public $SQL_TEXT_MAX_LENGTH=65535; + public $MIGRATION_PASSWORD='ys3vTFiR6gyGajz'; } \ No newline at end of file diff --git a/orif/plafor/Config/Routes.php b/orif/plafor/Config/Routes.php index 9e20f7dc..b365b4a9 100644 --- a/orif/plafor/Config/Routes.php +++ b/orif/plafor/Config/Routes.php @@ -9,5 +9,7 @@ $routes->add('plafor/admin/(:any)','\Plafor\Controllers\Admin::$1'); $routes->add('plafor/apprentice/(:any)','\Plafor\Controllers\Apprentice::$1'); +$routes->add('migration/(:any)','\Plafor\Controllers\Migration::$1'); +$routes->add('migration','\Plafor\Controllers\Migration::index'); ?> \ No newline at end of file diff --git a/orif/plafor/Controllers/Migration.php b/orif/plafor/Controllers/Migration.php new file mode 100644 index 00000000..cab0b051 --- /dev/null +++ b/orif/plafor/Controllers/Migration.php @@ -0,0 +1,52 @@ +request->getPost('password')==config('\Plafor\Config\PlaforConfig')->MIGRATION_PASSWORD){ + + $file = fopen(WRITEPATH . 'appStatus.json', 'r+'); + $initDatas = fread($file, 100); + + if ((json_decode($initDatas, true))['initialized'] === false) { + $this->response->setStatusCode('201')->send(); + $migrate = Services::migrations(); + try { + $migrate->setNamespace('User'); + $migrate->latest(); + $migrate->setNamespace('Plafor'); + $migrate->latest(); + } catch (\Exception $e) { + echo $e->getMessage(); + } + fclose($file); + fwrite(fopen(WRITEPATH . 'appStatus.json', 'w+'), json_encode(['initialized' => true])); + unlink((new \ReflectionClass('\Plafor\Controllers\Migration'))->getFileName()); + unlink(ROOTPATH.'orif/plafor/Views/migrationindex.php'); + return $this->response->setStatusCode(200); + + } + else{ + return $this->response->setStatusCode('400'); + } + }else{ + return $this->response->setStatusCode('401'); + } + } + + public function index() { + $this->display_view("\Plafor\migrationIndex.php"); + } +} + + + + + diff --git a/orif/plafor/Views/migrationIndex.php b/orif/plafor/Views/migrationIndex.php new file mode 100644 index 00000000..ce33a66e --- /dev/null +++ b/orif/plafor/Views/migrationIndex.php @@ -0,0 +1,142 @@ + + +

    + +

    +
    +

    + + + +
    + + + + +
    + +" /> + \ No newline at end of file diff --git a/writable/appStatus.json b/writable/appStatus.json new file mode 100644 index 00000000..eac30a82 --- /dev/null +++ b/writable/appStatus.json @@ -0,0 +1 @@ +{"initialized":false} \ No newline at end of file From 9bf182af58dcdb33ed120571a8b0cfd0cce89dbd Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 14 Oct 2021 10:49:06 +0200 Subject: [PATCH 112/172] after migration redirect to base_url --- orif/plafor/Views/migrationIndex.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Views/migrationIndex.php b/orif/plafor/Views/migrationIndex.php index ce33a66e..d3bed6ed 100644 --- a/orif/plafor/Views/migrationIndex.php +++ b/orif/plafor/Views/migrationIndex.php @@ -122,7 +122,7 @@ function executeMigration(){ body:formdata, }).then((response)=>{ if (response.ok){ - window.location.href='.'; + window.location.href=''; } else{ removeSpinner(); From 5c88c5a0204596a73848fb73454aae9cb1dacb3d Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 14 Oct 2021 10:58:06 +0200 Subject: [PATCH 113/172] Added CoursePlan progression Viewer by Component, Added stylesheet for styling progress component, Added src directory to add source code of components public/jsComponents is the directory of compiled Components --- orif/common/Views/footer.php | 3 + orif/common/Views/header.php | 1 + orif/plafor/Controllers/Apprentice.php | 62 +--- orif/plafor/Models/coursePlanModel.php | 78 +++++ orif/plafor/Views/apprentice/list.php | 62 ++-- public/commonUtils.js | 73 +++++ public/css/progressbarstyle.css | 20 ++ public/css/progressview.css | 230 ++++++++++++++ public/jsComponents/ProgressView.js | 396 +++++++++++++++++++++++++ public/jsComponents/progressbar.js | 48 +-- src/ProgressView.js | 291 ++++++++++++++++++ src/progressbar.js | 22 +- 12 files changed, 1163 insertions(+), 123 deletions(-) create mode 100644 public/commonUtils.js create mode 100644 public/css/progressview.css create mode 100644 public/jsComponents/ProgressView.js create mode 100644 src/ProgressView.js diff --git a/orif/common/Views/footer.php b/orif/common/Views/footer.php index ac08cd78..2a4612bc 100644 --- a/orif/common/Views/footer.php +++ b/orif/common/Views/footer.php @@ -16,6 +16,9 @@ + + + diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index 3ef3fb7d..52d9cd49 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -29,6 +29,7 @@ " /> + " /> diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index de67d17e..7c324bdf 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -538,58 +538,26 @@ public function view_user_course($id_user_course = null){ $this->display_view('\Plafor\user_course/view',$output); } - /*public function tester(){ - $file=fopen(WRITEPATH.'plafor.json','r+'); - $filedatas=fopen(WRITEPATH.'filedatas.txt','a+'); - $decodedfile=json_decode(fread($file,filesize(WRITEPATH.'plafor.json'))); - fclose($file); - - $datasName=[]; - for($i=2;$idata as $row){ - $temptab[]=(array)$row; - } - $datasName[$decodedfile[$i]->name]=$temptab; - } - d($datasName); - foreach ($datasName['user_type'] as $aclvl) { - $datastoappend=print_r($aclvl,true); - echo var_export($aclvl,true); - fwrite($filedatas,var_export($aclvl,true).";\n"); - } - fclose($filedatas); - } - */ /** - * + * @param null $userId the id of user + * If admin */ - public function getCoursePlanProgress($id){ - if (!isset($id)) { - return null; - } - - $objectivesByStatusAnduserCourse=[]; - $usercourseids=array_column(UserCourseModel::getInstance()->where('fk_user',$id)->findAll(),'id'); - $AcquisitionLevels=AcquisitionLevelModel::getInstance()->findAll(); - foreach ($usercourseids as $usercourseid) { - $AcquisitionStatus=AcquisitionStatusModel::getInstance()->where('fk_user_course',$usercourseid)->findAll(); - $objecivesAssociated=[]; - foreach ($AcquisitionStatus as $acquisitionStatus){ - $tempaArray=ObjectiveModel::getInstance()->find($acquisitionStatus['fk_objective']); - try{ - $tempaArray=array_merge($tempaArray,['acquisition_level'=>$acquisitionStatus['fk_acquisition_level']]); - }catch (\Exception $e){ - - } - $objecivesAssociated[$acquisitionStatus['fk_objective']]=$tempaArray; - } - $objectivesByStatusAnduserCourse[$usercourseid]=$objecivesAssociated; + public function getCoursePlanProgress($userId=null){ + if ($userId==null && $this->session->get('user_id')==null) + return; + //if user is admin + if($this->session->get('user_access')>=config('\User\UserConfig')->access_lvl_admin){ + return $this->response->setContentType('application/json')->setBody(json_encode(CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + } + else{ + $response=null; + $userId!=$this->session->get('user_id')?$response=$this->response->setStatusCode(403):$response=$this->response->setContentType('application/json')->setBody(json_encode(CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + return $response; + } + //d(CoursePlanModel::getInstance()->getCoursePlanProgress($userId)); - } - return json_encode($objectivesByStatusAnduserCourse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); } } \ No newline at end of file diff --git a/orif/plafor/Models/coursePlanModel.php b/orif/plafor/Models/coursePlanModel.php index 9066798f..723a3ebd 100644 --- a/orif/plafor/Models/coursePlanModel.php +++ b/orif/plafor/Models/coursePlanModel.php @@ -4,6 +4,10 @@ use CodeIgniter\Database\ConnectionInterface; use CodeIgniter\Model; use CodeIgniter\Validation\ValidationInterface; +use function Plafor\Controllers\getCompetenceDomains; +use function Plafor\Controllers\getCoursePlans; +use function Plafor\Controllers\getObjectives; +use function Plafor\Controllers\getOperationalCompetences; class CoursePlanModel extends Model{ private static $coursePlanModel=null; @@ -64,7 +68,81 @@ public static function getCompetenceDomains($coursePlanId){ public static function getUserCourses($coursePlanId){ return UserCourseModel::getInstance()->where('fk_course_plan',$coursePlanId)->findAll(); } + /** + * @param $userId //is the apprentice id + * @return null|string|array // return jsonobjects list organized by course + * Plan contained compdom and opcomp + */ + public function getCoursePlanProgress($userId){ + $competenceDomainsAssociated=[]; + $operationalCompetencesassociated=[]; + $coursePlanAssociated=[]; + function getCoursePlansDatas($userid){ + $coursplans=[]; + foreach (UserCourseModel::getInstance()->where('fk_user',$userid)->findAll() as $userCourse){ + $coursplans[$userCourse['fk_course_plan']]=UserCourseModel::getCoursePlan($userCourse['fk_course_plan']); + $coursplans[$userCourse['fk_course_plan']]['fk_acquisition_status']=$userCourse['fk_status']; + } + return $coursplans; + } + + function getCompetenceDomainsDatas($coursePlanId){ + $indexedCompetenceDomains=[]; + $competenceDomains=CompetenceDomainModel::getCompetenceDomains(false,$coursePlanId); + foreach ($competenceDomains as $competenceDomain) { + $indexedCompetenceDomains[$competenceDomain['id']]=$competenceDomain; + } + return $indexedCompetenceDomains; + } + function getOperationalCompetencesDatas($competenceDomainId){ + $operationalCompetences=[]; + $indexedOperationalCompetences=[]; + $operationalCompetences=OperationalCompetenceModel::getOperationalCompetences(false,$competenceDomainId); + foreach ($operationalCompetences as $operationalCompetence){ + $indexedOperationalCompetences[$operationalCompetence['id']]=$operationalCompetence; + } + return $indexedOperationalCompetences; + } + function getObjectivesDatas($opCompId){ + $intermediateArray=[]; + foreach (ObjectiveModel::getObjectives(false,$opCompId) as $objective){ + $objective['fk_acquisition_level']=ObjectiveModel::getAcquisitionStatus($objective['id'])[0]['fk_acquisition_level']; + $intermediateArray[]=$objective; + } + $objectives=$intermediateArray; + + return $objectives; + } + if (!isset($userId)) { + return null; + } + $coursePlans=getCoursePlansDatas($userId); + foreach ($coursePlans as $coursePlan){ + $coursePlan['competenceDomains']=getCompetenceDomainsDatas($coursePlan['id']); + foreach ($coursePlan['competenceDomains'] as $competenceDomain){ + $operationalCompetences=getOperationalCompetencesDatas($competenceDomain['id']); + $competenceDomain['operationalCompetences']=$operationalCompetences; + foreach ($competenceDomain['operationalCompetences'] as $operationalCompetence){ + $objectives=getObjectivesDatas($operationalCompetence['id']); + $operationalCompetence['objectives']=$objectives; + $competenceDomain['operationalCompetences'][$operationalCompetence['id']]=$operationalCompetence; + + } + $coursePlan['competenceDomains'][$competenceDomain['id']]= $competenceDomain; + } + $coursePlans[$coursePlan['id']]=$coursePlan; + } + + + return $coursePlans; + + + + + + + } } diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 6b4f4dff..4f5ad309 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -8,6 +8,7 @@ * @copyright Copyright (c) Orif (http://www.orif.ch) */ ?> +
    @@ -90,43 +91,50 @@ }); //for each elements orderedArray.forEach((node, index) => { - console.log(index); $.get("/" + index, function () { - }).done((element) => { - //response received + }).done((response) => { + //response received is json format + let coursePlans=Object.values(response); + coursePlans.forEach((coursePlan)=>{ + const coursePlanStats=getCoursePlanProgress(coursePlan) + //in the case of multiple coursePlans + let div=document.createElement('div'); + node.appendChild(div); + ReactDOM.render(
    2} + /> + { + coursePlanStats.status<=2? + + :null + }
    , div); + + }) + + + + //render progressbar for each apprentice + + - const objectives = JSON.parse(element); //count all objectives by acquisition status - let statusCount = new Map(); - - Object.keys(objectives).forEach((user_course_id) => { - /**<--Here comes all user_courses_id associated --> */ - Object.keys(objectives[user_course_id]).forEach((objectiveId) => { - //if statusCount contains already key - try { - if (statusCount.get(objectives[user_course_id][objectiveId]['acquisition_level']) !== undefined) { - statusCount.set((objectives[user_course_id][objectiveId]['acquisition_level']), parseInt(statusCount.get((objectives[user_course_id][objectiveId]['acquisition_level']))) + 1); - } else { - statusCount.set((objectives[user_course_id][objectiveId]['acquisition_level']), 1); - } - } catch (e) { - } - }) - }) - ReactDOM.render("} - clickAction={displayDetails} - />, node); + }) //use ~5% of items for group }) }); - function displayDetails(parentElement,colors,elements){ - ReactDOM.render("} colors={colors} elements={elements}/>,parentElement) + function displayDetails(coursePlan){ + ReactDOM.render(,document.getElementById('details')) + } + function closeDetails(){ + ReactDOM.unmountComponentAtNode(document.getElementById('details')); } + diff --git a/public/commonUtils.js b/public/commonUtils.js new file mode 100644 index 00000000..e1e099d2 --- /dev/null +++ b/public/commonUtils.js @@ -0,0 +1,73 @@ +function getCoursePlanProgress(coursePlan){ + const unitCounter=[0,0,0,0]; + const courseplanStatus=coursePlan.fk_acquisition_status; + Object.values(coursePlan.competenceDomains).forEach((competenceDomain)=>{ + Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence)=>{ + Object.values(operationalCompetence.objectives).forEach((objective)=>{ + switch (objective.fk_acquisition_level){ + case '1': + unitCounter[3]===0?unitCounter[3]=1:unitCounter[3]++ + break; + case '2': + unitCounter[2]===0?unitCounter[2]=1:unitCounter[2]++ + break; + case '3': + unitCounter[1]===0?unitCounter[1]=1:unitCounter[1]++ + break; + default: + unitCounter[0]===0?unitCounter[0]=1:unitCounter[0]++ + + } + }) + }) + + }); + let coursePlanStats={ + status:courseplanStatus, + progress:unitCounter + }; + return coursePlanStats; +} +function getCompDomainProgress(competenceDomain){ + const unitCounter=[0,0,0,0]; + + Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence)=>{ + Object.values(operationalCompetence.objectives).forEach((objective)=>{ + switch (objective.fk_acquisition_level){ + case '1': + unitCounter[3]===0?unitCounter[3]=1:unitCounter[3]++ + break; + case '2': + unitCounter[2]===0?unitCounter[2]=1:unitCounter[2]++ + break; + case '3': + unitCounter[1]===0?unitCounter[1]=1:unitCounter[1]++ + break; + default: + unitCounter[0]===0?unitCounter[0]=1:unitCounter[0]++ + + } + }) +}) + return unitCounter; +} +function getOpCompProgress(operationalCompetence){ + const unitCounter=[0,0,0,0]; + Object.values(operationalCompetence.objectives).forEach((objective)=>{ + switch (objective.fk_acquisition_level){ + case '1': + unitCounter[3]===0?unitCounter[3]=1:unitCounter[3]++ + break; + case '2': + unitCounter[2]===0?unitCounter[2]=1:unitCounter[2]++ + break; + case '3': + unitCounter[1]===0?unitCounter[1]=1:unitCounter[1]++ + break; + default: + unitCounter[0]===0?unitCounter[0]=1:unitCounter[0]++ + + } + }) + return unitCounter; +} \ No newline at end of file diff --git a/public/css/progressbarstyle.css b/public/css/progressbarstyle.css index f074ac37..64b0b0c0 100644 --- a/public/css/progressbarstyle.css +++ b/public/css/progressbarstyle.css @@ -22,6 +22,9 @@ flex-direction: row; } +.disabled{ + filter: grayscale(80%); +} .positionedElement { display: block; @@ -214,6 +217,23 @@ } #fourthbar{ } +.viewtable tr{ + padding: 10px; + transition: background-color 0.3s; + +} +.viewtable tr:hover{ + background-color: #AE9B70; + transition: background-color 0.3s; +} +.viewtable tr{ +} +.viewtable tr th{ + +} +.viewtable th p{ + margin: 0; +} @media screen and (max-width: 600px){ .frame main{ flex-direction: column; diff --git a/public/css/progressview.css b/public/css/progressview.css new file mode 100644 index 00000000..5a1c09fd --- /dev/null +++ b/public/css/progressview.css @@ -0,0 +1,230 @@ +#detailsFrame{ + z-index: 10; + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100vh; + background-color: rgba(0,0,0,0.5); + padding: 0; + margin: 0; + display: flex; + justify-content: center; + flex-direction: row; + +} +@media screen and (min-width: 950px){ + #detailsFrame{ + height: unset!important; + z-index: 10; + position: absolute; + left: 0; + top: 0; + width: 100%; + background-color: rgba(0,0,0,0.5); + padding: 0; + margin: 0; + display: flex; + justify-content: center; + flex-direction: row; + } + .operationalCompetenceSymbol{ + display: block; + min-width: 1%; + max-width: 1%; + text-align: center; + color: #897754; + } + .operationalCompetenceName{ + display: block; + min-width: 12%; + max-width: 12%; + } + .competenceDomainSymbol{ + display: block; + min-width: 1%; + max-width: 1%; + color: #897754; + padding: unset!important; + padding-top: .75rem!important; + + + } + .competenceDomainName{ + display: block; + min-width: 10%; + max-width: 10%; + padding: unset!important; + padding-top: .75rem!important; + padding-bottom: .75rem!important; + + + } + #courseplandetails{ + table-layout: fixed; + background-color: white; + + } + #courseplandetails tr{ + display: flex; + flex-direction: row; + width: 100%; + max-width: 100%; + border-top: 1px solid #dee2e6;; + padding-left: 5px; + + } + #courseplandetails td{ + border:unset; + } + #exitdetails{ + align-self: center; + margin-left: 70%; + font-size: 2rem; + } + #exitdetails:hover{ + color: black; + } + +} + +@media screen and (max-width: 1260px){ + #courseplandetails{ + font-size: 0.7rem; + } +} +@media screen and (max-width: 950px){ + #leftColumn{ + transform: translateX(0); + transition: transform .5s ease-in-out; + z-index: 9; + position: absolute; + left: 0; + top: 0; + width: 30%; + display: flex; + flex-direction: column; + background-color: #AE9B70 ; + min-width: 125px !important; + max-height: 100vh; + min-height: 100vh; + overflow-y: auto; + } + .compdom{ + display: flex; + flex-direction: column; + color: white; + padding: 0 2% 0 2%; + margin:0 2% 0 2%; + background-color: white; + border-radius: 10px; + cursor: default; + font-size: 0.8rem; + } + .compdom:hover{ + background-color:rgba(220, 220, 220, 0.8); + } + .compdom:nth-child(n+2){ + border-top: .1rem white solid; + margin-bottom: 5px; + } + #opcompList{ + padding-left: 30%; + display: flex; + flex-direction: column; + align-items: center; + transition: padding-left .5s ease-in-out; + min-height: 100vh; + max-height: 100vh; + overflow-y: auto; + justify-content: stretch; + } + #closelbtn{ + display: flex; + align-items: center; + justify-content: center; + font-size: 2rem; + position: absolute; + left: 5%; + top: 0; + transition: all .3s linear; + z-index: 10; + transform: translateX(-100vh); + color: #85724e; + width: 50px; + height: 50px; + border-radius: 100%; + background-color: white; + + } + #closelbtn:hover{ + background-color: #85724e; + color: white; + } + #listbtn{ + transition: all .3s linear; + color: #85724e; + display: flex; + align-items: center; + justify-content: center; + font-size: 2rem; + width: 50px; + height: 50px; + border-radius: 100%; + background-color: white; + } + #listbtn:hover{ + background-color: #85724e; + color: white; + } + .operationalCompetence{ + font-size: 0.8rem; + display: flex; + flex-direction: column; + background-color: white; + width: 80%; + margin-bottom: 5px; + border: 2px #897754 solid; + border-radius: 10px; + min-height: 150px; + max-height: 400px; + flex: 1.2; + justify-content: space-between; + } + + .operationalCompetenceSymbol{ + border-bottom: 2px #dee2e6 solid; + margin: 0 .8rem 0 .8rem; + color: #897754; + } + .operationalCompetenceName{ + margin: 0 .8rem 0 .8rem; + + } + .operationalCompetenceProgress{ + margin: 0 .8rem 0 .8rem; + + } + .competenceDomainSymbol{ + color: #897754; + border-bottom: 1px #dee2e6 solid; + } + .competenceDomainName{ + color: black; + } + #exitdetails{ + position: absolute; + top: 0; + right: 5px; + align-self: center; + margin-left: 70%; + font-size: 2rem; + color: white; + } + #exitdetails:hover{ + color: black; + } +} + + + diff --git a/public/jsComponents/ProgressView.js b/public/jsComponents/ProgressView.js new file mode 100644 index 00000000..9f4951aa --- /dev/null +++ b/public/jsComponents/ProgressView.js @@ -0,0 +1,396 @@ +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var TableRow = function (_React$Component) { + _inherits(TableRow, _React$Component); + + function TableRow(props) { + _classCallCheck(this, TableRow); + + var _this = _possibleConstructorReturn(this, (TableRow.__proto__ || Object.getPrototypeOf(TableRow)).call(this, props)); + + _this.state = { + operationnalCompetences: [] + }; + return _this; + } + + _createClass(TableRow, [{ + key: 'render', + value: function render() { + var _this2 = this; + + return React.createElement( + 'tr', + null, + React.createElement(CompetenceDomainView, { mobiledisplay: this.props.mobiledisplay, + competenceDomainSymbol: this.props.coursePlanRows.competenceDomainSymbol, + competenceDomainName: this.props.coursePlanRows.competenceDomainName, + competenceDomainDatas: this.props.coursePlanRows.competenceDomain }), + this.props.coursePlanRows.operationnalCompetences.forEach(function (operationalCompetence) { + _this2.state.operationnalCompetences.push(React.createElement(OperationalCompetenceView, { + mobiledisplay: _this2.props.mobiledisplay, + operationalCompetenceSymbol: operationalCompetence.symbol, + operationalCompetenceName: operationalCompetence.name, + operationalCompetenceDatas: operationalCompetence.operationnalCompetence })); + }), + this.state.operationnalCompetences + ); + } + }]); + + return TableRow; +}(React.Component); + +var Frame = function (_React$Component2) { + _inherits(Frame, _React$Component2); + + function Frame(props) { + _classCallCheck(this, Frame); + + return _possibleConstructorReturn(this, (Frame.__proto__ || Object.getPrototypeOf(Frame)).call(this, props)); + } + + _createClass(Frame, [{ + key: 'componentDidMount', + value: function componentDidMount() {} + }, { + key: 'render', + value: function render() { + this.list = []; + Object.values(this.props.operationnalCompetences).forEach(function (opcomp) {}); + return React.createElement( + 'div', + { style: { display: 'contents' } }, + this.list + ); + } + }]); + + return Frame; +}(React.Component); + +var ProgressView = function (_React$Component3) { + _inherits(ProgressView, _React$Component3); + + function ProgressView(props) { + _classCallCheck(this, ProgressView); + + var _this4 = _possibleConstructorReturn(this, (ProgressView.__proto__ || Object.getPrototypeOf(ProgressView)).call(this, props)); + + _this4.tableRows = []; + _this4.competenceDomains = []; + _this4.operationalCompetences = []; + _this4.listbtn = React.createRef(); + + _this4.refreshComponent = function (e) { + if (window.innerWidth > 950) { + _this4.setState({ + mobiledisplay: false + }); + } else { + _this4.setState({ + mobiledisplay: true + }); + } + }; + + _this4.state = { + mobiledisplay: window.innerWidth < 950, + page: 1 + }; + _this4.hideMenu = _this4.hideMenu.bind(_this4); + _this4.showMenu = _this4.showMenu.bind(_this4); + + return _this4; + } + + _createClass(ProgressView, [{ + key: 'componentDidMount', + value: function componentDidMount() { + window.innerWidth > 950 ? this.setState({ + mobiledisplay: false + }) : this.setState({ + mobiledisplay: true + }); + + window.addEventListener('resize', this.refreshComponent); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + window.removeEventListener('resize', this.refreshComponent); + } + }, { + key: 'render', + value: function render() { + var _this5 = this; + + this.competenceDomains = []; + var intermediateList = []; + this.tableRows = []; + if (this.state.mobiledisplay) { + return React.createElement( + 'div', + { id: 'detailsFrame' }, + React.createElement( + 'div', + { id: 'opcompList' }, + React.createElement( + 'div', + { id: 'leftColumn' }, + React.createElement( + 'span', + { id: 'listbtn', ref: this.listbtn, onClick: function onClick(e) { + return _this5.hideMenu(); + } }, + React.createElement('i', { className: 'bi bi-list' }) + ), + Object.values(this.props.coursePlan.competenceDomains).forEach(function (competenceDomain) { + _this5.competenceDomains.push(React.createElement(CompetenceDomainView, { mobiledisplay: true, competenceDomainDatas: competenceDomain, competenceDomainName: competenceDomain.name, competenceDomainSymbol: competenceDomain.symbol, onClick: function onClick(opcomps) { + _this5.hideMenu(); + _this5.setState({ page: competenceDomain.id }); + } })); + intermediateList = []; + Object.values(competenceDomain.operationalCompetences).forEach(function (operationalCompetence) { + intermediateList.push(React.createElement(OperationalCompetenceView, { key: operationalCompetence.id, operationalCompetenceSymbol: operationalCompetence.symbol, operationalCompetenceName: operationalCompetence.name, operationalCompetenceDatas: operationalCompetence, mobiledisplay: true })); + }); + _this5.operationalCompetences[competenceDomain.id] = intermediateList; + }), + this.competenceDomains + ), + React.createElement( + 'span', + { id: 'closelbtn', onClick: function onClick(e) { + return _this5.showMenu(); + } }, + React.createElement('i', { className: 'bi bi-list' }) + ), + this.operationalCompetences[this.state.page], + React.createElement('i', { className: 'bi bi-x-circle-fill', id: 'exitdetails', onClick: function onClick() { + _this5.props.callback(); + } }) + ) + ); + } else { + return React.createElement( + 'div', + { id: 'detailsFrame' }, + React.createElement( + 'div', + { style: { display: 'flex', justifyContent: 'center', width: '90%' } }, + React.createElement( + 'table', + { id: 'courseplandetails', className: "table", + style: { tableLayout: 'fixed', width: '100%' } }, + React.createElement( + 'thead', + { className: 'table-dark bg-primary' }, + React.createElement( + 'tr', + null, + React.createElement( + 'th', + { style: { width: '13%' } }, + 'competence domain' + ), + React.createElement( + 'th', + { colSpan: 21 }, + 'operational competences' + ), + React.createElement('i', { className: 'bi bi-x-circle-fill', id: 'exitdetails', onClick: function onClick() { + _this5.props.callback(); + } }) + ) + ), + React.createElement( + 'tbody', + null, + Object.values(this.props.coursePlan.competenceDomains).forEach(function (competenceDomain) { + + var row = new Object(); + row.competenceDomain = competenceDomain; + row.competenceDomainSymbol = competenceDomain.symbol; + row.competenceDomainName = competenceDomain.name; + Object.values(competenceDomain.operationalCompetences).forEach(function (operationalCompetence) { + var opComp = new Object(); + opComp.operationnalCompetence = operationalCompetence; + opComp.symbol = operationalCompetence.symbol; + opComp.name = operationalCompetence.name; + row.operationnalCompetences !== undefined ? row.operationnalCompetences.push(opComp) : row.operationnalCompetences = [opComp]; + }); + _this5.tableRows.push(React.createElement(TableRow, { mobiledisplay: _this5.state.mobiledisplay, coursePlanRows: row })); + }), + this.tableRows + ) + ) + ) + ); + } + } + }, { + key: 'hideMenu', + value: function hideMenu() { + document.getElementById('leftColumn').style.transform = 'translateX(-100%)'; + document.getElementById('opcompList').style.setProperty('padding-left', '0', 'important'); + document.getElementById('leftColumn').addEventListener('transitionend', this.closeMenuListener = function (e) { + document.getElementById('closelbtn').style.setProperty('transform', 'translateX(0)', 'important'); + }); + } + }, { + key: 'showMenu', + value: function showMenu() { + document.getElementById('leftColumn').removeEventListener('transitionend', this.closeMenuListener); + document.getElementById('opcompList').style.setProperty('padding-left', null); + document.getElementById('leftColumn').style.setProperty('transform', 'translateX(0)', 'important'); + + document.getElementById('closelbtn').style.setProperty('transform', null, 'important'); + } + }]); + + return ProgressView; +}(React.Component); + +var CompetenceDomainView = function (_React$Component4) { + _inherits(CompetenceDomainView, _React$Component4); + + function CompetenceDomainView(props) { + _classCallCheck(this, CompetenceDomainView); + + var _this6 = _possibleConstructorReturn(this, (CompetenceDomainView.__proto__ || Object.getPrototypeOf(CompetenceDomainView)).call(this, props)); + + _this6.competenceDomainProgress = getCompDomainProgress(_this6.props.competenceDomainDatas); + return _this6; + } + + _createClass(CompetenceDomainView, [{ + key: 'render', + value: function render() { + var _this7 = this; + + if (this.props.mobiledisplay) { + return React.createElement( + 'div', + { className: 'compdom', onClick: function onClick() { + _this7.props.onClick(_this7.props.competenceDomainDatas.operationalCompetences); + } }, + React.createElement( + 'span', + { className: 'competenceDomainSymbol' }, + this.props.competenceDomainSymbol + ), + React.createElement( + 'span', + { className: 'competenceDomainName' }, + this.props.competenceDomainName + ), + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: this.competenceDomainProgress, + timeToRefresh: '10', elementToGroup: 1, disabled: false + }) + ); + } else return React.createElement( + 'span', + { style: { display: 'contents' } }, + React.createElement( + 'td', + { className: 'competenceDomainSymbol', colSpan: 1 }, + this.props.competenceDomainSymbol + ), + React.createElement( + 'td', + { className: 'competenceDomainName', colSpan: 3 }, + React.createElement( + 'div', + { style: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'space-between', + height: '100%' + } }, + this.props.competenceDomainName, + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: this.competenceDomainProgress, + timeToRefresh: '10', elementToGroup: 1, disabled: false + }) + ) + ) + ); + } + }]); + + return CompetenceDomainView; +}(React.Component); + +var OperationalCompetenceView = function (_React$Component5) { + _inherits(OperationalCompetenceView, _React$Component5); + + function OperationalCompetenceView(props) { + _classCallCheck(this, OperationalCompetenceView); + + var _this8 = _possibleConstructorReturn(this, (OperationalCompetenceView.__proto__ || Object.getPrototypeOf(OperationalCompetenceView)).call(this, props)); + + _this8.operationalCompetenceProgress = getOpCompProgress(props.operationalCompetenceDatas); + return _this8; + } + + _createClass(OperationalCompetenceView, [{ + key: 'render', + value: function render() { + if (this.props.mobiledisplay) { + return React.createElement( + 'div', + { className: 'operationalCompetence' }, + React.createElement( + 'span', + { className: 'operationalCompetenceSymbol' }, + this.props.operationalCompetenceSymbol + ), + React.createElement( + 'span', + { className: 'operationalCompetenceName' }, + this.props.operationalCompetenceName + ), + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: this.operationalCompetenceProgress, + timeToRefresh: '10', elementToGroup: 1, disabled: false, + key: this.props.operationalCompetenceDatas.id + }) + ); + } else { + return React.createElement( + 'span', + { style: { display: 'contents' } }, + React.createElement( + 'td', + { className: 'operationalCompetenceSymbol', colSpan: 1 }, + this.props.operationalCompetenceSymbol + ), + React.createElement( + 'td', + { className: 'operationalCompetenceName', colSpan: 2 }, + React.createElement( + 'div', + { + style: { display: 'flex', flexDirection: 'column', justifyContent: 'space-between', height: '100%' } }, + this.props.operationalCompetenceName, + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: this.operationalCompetenceProgress, + timeToRefresh: '10', elementToGroup: 1, disabled: false, + key: this.props.operationalCompetenceDatas.id + }) + ) + ) + ); + } + } + }]); + + return OperationalCompetenceView; +}(React.Component); \ No newline at end of file diff --git a/public/jsComponents/progressbar.js b/public/jsComponents/progressbar.js index 2116eff9..5ff68e6a 100644 --- a/public/jsComponents/progressbar.js +++ b/public/jsComponents/progressbar.js @@ -16,7 +16,6 @@ var Progressbar = function (_React$Component) { _this.displayProgress = _this.displayProgress.bind(_this); _this.removeProgress = _this.removeProgress.bind(_this); - _this.showDetails = _this.showDetails.bind(_this); _this.progressContainer = React.createRef(); return _this; } @@ -29,20 +28,10 @@ var Progressbar = function (_React$Component) { }, { key: 'render', value: function render() { - var _this2 = this; - return React.createElement( 'span', - { style: { backgroundColor: 'unset!important' } }, - React.createElement('div', { id: 'progressContainer', ref: this.progressContainer }), - React.createElement( - 'a', - { style: { marginLeft: '10px', marginTop: '5px' }, className: 'btn btn-secondary', onClick: function onClick(ev) { - _this2.showDetails(ev); - } }, - this.props.detailsLbl - ), - React.createElement('span', null) + { key: this.props.key }, + React.createElement('div', { id: 'progressContainer', className: this.props.disabled ? 'disabled' : null, ref: this.progressContainer }) ); } /** @@ -53,23 +42,24 @@ var Progressbar = function (_React$Component) { }, { key: 'displayProgress', value: function displayProgress() { - var _this3 = this; + var _this2 = this; //Get container for progressbar this.progressContainer.current.style.animation = ''; //set value of container to empty this.progressContainer.current.innerHTML = ''; + var total = 0; //element color is a map indexed by color var elementColor = new Map(); //add total number of objectives to total variable this.props.colors.forEach(function (color, idx) { - total += parseInt(_this3.props.elements[idx]); + total += parseInt(_this2.props.elements[idx]); //if there is many element with same color add to number if (elementColor.get(color) != null) { - elementColor.set(color, elementColor.get(color) + parseInt(_this3.props.elements[idx])); + elementColor.set(color, elementColor.get(color) + parseInt(_this2.props.elements[idx])); } else { - elementColor.set(color, parseInt(_this3.props.elements[idx])); + elementColor.set(color, parseInt(_this2.props.elements[idx])); } }); //width to use for one element @@ -98,9 +88,9 @@ var Progressbar = function (_React$Component) { var interval = setInterval(function (e) { if (i <= elementArray.length) { //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; - i === elementArray.length - 1 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : i - 1 >= 0 ? elementArray[i - 1].style.setProperty('transform', 'translate(0)', 'important') : ''; + i === elementArray.length - 1 ? elementArray[i !== 0 ? i - 1 : 0].style.setProperty('transform', 'translate(0)', 'important') : i - 1 >= 0 ? elementArray[i !== 0 ? i - 1 : 0].style.setProperty('transform', 'translate(0)', 'important') : ''; try { - _this3.progressContainer.current.appendChild(elementArray[i]); + _this2.progressContainer.current.appendChild(elementArray[i]); } catch (e) { i++; } @@ -109,8 +99,8 @@ var Progressbar = function (_React$Component) { clearInterval(interval); var testedColor = void 0; var arraywidth = new Map(); - for (var _i2 = 0; _i2 < _this3.progressContainer.current.childNodes.length; _i2++) { - var child = _this3.progressContainer.current.childNodes[_i2]; + for (var _i2 = 0; _i2 < _this2.progressContainer.current.childNodes.length; _i2++) { + var child = _this2.progressContainer.current.childNodes[_i2]; //When the child has the same bkcolor as last element, increase width if (child.style.backgroundColor == testedColor) { arraywidth.set(testedColor, arraywidth.get(testedColor) + Math.round(parseFloat(child.style.width) * 10) / 10); @@ -122,14 +112,14 @@ var Progressbar = function (_React$Component) { } testedColor = child.style.backgroundColor; } - _this3.progressContainer.current.innerHTML = ''; + _this2.progressContainer.current.innerHTML = ''; arraywidth.forEach(function (size, color) { var node = document.createElement('div'); node.classList.add('positionedElement'); node.style.backgroundColor = color; - node.style.setProperty('width', size + '%', 'important'); + node.style.setProperty('width', size + 1 + '%', 'important'); node.style.setProperty('transform', 'translate(0)', 'important'); - _this3.progressContainer.current.appendChild(node); + _this2.progressContainer.current.appendChild(node); }); } }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); @@ -154,16 +144,6 @@ var Progressbar = function (_React$Component) { i--; }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); } - /** - * this function is called when need to show details (callback) - * @param ev the event to handle - */ - - }, { - key: 'showDetails', - value: function showDetails(ev) { - this.props.clickAction != null ? this.props.clickAction(ev.target.nextSibling, this.props.colors, this.props.elements) : null; - } }]); return Progressbar; diff --git a/src/ProgressView.js b/src/ProgressView.js new file mode 100644 index 00000000..c581edae --- /dev/null +++ b/src/ProgressView.js @@ -0,0 +1,291 @@ +class TableRow extends React.Component { + constructor(props) { + super(props); + this.state = { + operationnalCompetences: [] + } + } + + render() { + return (
    + + + {this.props.coursePlanRows.operationnalCompetences.forEach((operationalCompetence) => { + this.state.operationnalCompetences.push(); + + })} + + {this.state.operationnalCompetences} + + + ) + + } + +} +class Frame extends React.Component{ + + constructor(props) { + super(props); + + } + componentDidMount(){ + + + } + render(){ + this.list=[]; + Object.values(this.props.operationnalCompetences).forEach((opcomp)=>{ + }); + return ( +
    + {this.list} +
    + ) + } +} + +class ProgressView extends React.Component { + openMenuListener; + closeMenuListener; + tableRows = []; + competenceDomains=[]; + operationalCompetences=[]; + listbtn=React.createRef(); + refreshComponent=(e) => { + if (window.innerWidth > 950) { + this.setState({ + mobiledisplay: false + }); + + } else { + this.setState({ + mobiledisplay: true + }); + } + } + + constructor(props) { + super(props); + this.state = { + mobiledisplay: window.innerWidth < 950, + page:1 + } + this.hideMenu=this.hideMenu.bind(this); + this.showMenu=this.showMenu.bind(this); + + } + + componentDidMount() { + window.innerWidth > 950 ? + this.setState({ + mobiledisplay: false + }) + : + this.setState({ + mobiledisplay: true + }); + + window.addEventListener('resize',this.refreshComponent) + } + componentWillUnmount(){ + window.removeEventListener('resize',this.refreshComponent) + } + + render() { + this.competenceDomains=[]; + let intermediateList=[]; + this.tableRows=[]; + if (this.state.mobiledisplay) { + return ( +
    +
    +
    + this.hideMenu()}> + {Object.values(this.props.coursePlan.competenceDomains).forEach((competenceDomain) => { + this.competenceDomains.push({ + this.hideMenu(); + this.setState({page:competenceDomain.id}); + } + }/>); + intermediateList=[]; + Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence)=>{ + intermediateList.push() + }) + this.operationalCompetences[competenceDomain.id]=intermediateList; + })} + {this.competenceDomains} + + + + +
    + this.showMenu()}> + {this.operationalCompetences[this.state.page]} + { + this.props.callback(); + }}> +
    +
    + ); + } else { + return ( + +
    +
    + +
    + + + + + { + this.props.callback(); + }}> + + + + + {Object.values(this.props.coursePlan.competenceDomains).forEach((competenceDomain) => { + + let row = new Object(); + row.competenceDomain = competenceDomain; + row.competenceDomainSymbol = competenceDomain.symbol; + row.competenceDomainName = competenceDomain.name; + Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence) => { + let opComp = new Object(); + opComp.operationnalCompetence = operationalCompetence; + opComp.symbol = operationalCompetence.symbol; + opComp.name = operationalCompetence.name; + row.operationnalCompetences !== undefined ? row.operationnalCompetences.push(opComp) : row.operationnalCompetences = [opComp]; + }) + this.tableRows.push(); + + }) + } + {this.tableRows} + + + + +
    competence domainoperational competences
    +
    +
    + + + ); + } + } + hideMenu(){ + document.getElementById('leftColumn').style.transform='translateX(-100%)'; + document.getElementById('opcompList').style.setProperty('padding-left','0','important') + document.getElementById('leftColumn').addEventListener('transitionend',this.closeMenuListener=(e)=>{ + document.getElementById('closelbtn').style.setProperty('transform','translateX(0)','important') + + + }) + } + showMenu(){ + document.getElementById('leftColumn').removeEventListener('transitionend',this.closeMenuListener); + document.getElementById('opcompList').style.setProperty('padding-left',null) + document.getElementById('leftColumn').style.setProperty('transform','translateX(0)','important') + + document.getElementById('closelbtn').style.setProperty('transform',null,'important'); + } + +} + +class CompetenceDomainView extends React.Component { + competenceDomainProgress; + + constructor(props) { + super(props); + this.competenceDomainProgress = getCompDomainProgress(this.props.competenceDomainDatas); + } + + render() { + if (this.props.mobiledisplay){ + return( +
    { + this.props.onClick(this.props.competenceDomainDatas.operationalCompetences) + }}> + {this.props.competenceDomainSymbol} + {this.props.competenceDomainName} + +
    + ) + } + else + return ( + + {this.props.competenceDomainSymbol} +
    {this.props.competenceDomainName} + +
    +
    + ); + } + +} + +class OperationalCompetenceView extends React.Component { + operationalCompetenceProgress; + + constructor(props) { + super(props); + this.operationalCompetenceProgress = getOpCompProgress(props.operationalCompetenceDatas); + } + + render() { + if (this.props.mobiledisplay) { + return ( +
    + {this.props.operationalCompetenceSymbol} + {this.props.operationalCompetenceName} + +
    + ) + } else { + return ( + + {this.props.operationalCompetenceSymbol} + +
    + {this.props.operationalCompetenceName} + +
    +
    + ) + } + } +} + + diff --git a/src/progressbar.js b/src/progressbar.js index c89a3179..f33cffc3 100644 --- a/src/progressbar.js +++ b/src/progressbar.js @@ -3,19 +3,17 @@ class Progressbar extends React.Component{ super(props); this.displayProgress=this.displayProgress.bind(this); this.removeProgress=this.removeProgress.bind(this); - this.showDetails=this.showDetails.bind(this); this.progressContainer=React.createRef() } componentDidMount(){ this.displayProgress(); + } render(){ return ( - -
    + +
    - {this.showDetails(ev);} - }>{this.props.detailsLbl}
    ) } @@ -23,11 +21,13 @@ class Progressbar extends React.Component{ * this function is called when need to load progressBar * @param props */ + displayProgress() { //Get container for progressbar this.progressContainer.current.style.animation = ''; //set value of container to empty this.progressContainer.current.innerHTML = ''; + let total = 0; //element color is a map indexed by color let elementColor = new Map(); @@ -67,7 +67,7 @@ class Progressbar extends React.Component{ const interval = setInterval((e) => { if (i <= elementArray.length) { //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; - i===elementArray.length-1?elementArray[i-1].style.setProperty('transform','translate(0)','important'):i-1>=0?elementArray[i-1].style.setProperty('transform','translate(0)','important'):''; + i===elementArray.length-1?elementArray[i!==0?i-1:0].style.setProperty('transform','translate(0)','important'):i-1>=0?elementArray[i!==0?i-1:0].style.setProperty('transform','translate(0)','important'):''; try { this.progressContainer.current.appendChild(elementArray[i]); }catch (e){ @@ -98,7 +98,7 @@ class Progressbar extends React.Component{ const node=document.createElement('div'); node.classList.add('positionedElement'); node.style.backgroundColor=color; - node.style.setProperty('width',(size)+'%','important'); + node.style.setProperty('width',(size+1)+'%','important'); node.style.setProperty('transform','translate(0)','important'); this.progressContainer.current.appendChild(node); }) @@ -126,12 +126,4 @@ class Progressbar extends React.Component{ i--; },this.props.timeToRefresh!=null?this.props.timeToRefresh:10) } - /** - * this function is called when need to show details (callback) - * @param ev the event to handle - */ - showDetails(ev){ - this.props.clickAction!=null? - this.props.clickAction(ev.target.nextSibling,this.props.colors,this.props.elements):null - } } From ba11e980cef2ebae1e372c8b13d523634cacf060 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 14 Oct 2021 14:26:21 +0200 Subject: [PATCH 114/172] fix --- orif/plafor/Controllers/Migration.php | 52 +++++++++++++-------------- writable/appStatus.json | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/orif/plafor/Controllers/Migration.php b/orif/plafor/Controllers/Migration.php index c29afa32..6a1f3377 100644 --- a/orif/plafor/Controllers/Migration.php +++ b/orif/plafor/Controllers/Migration.php @@ -10,36 +10,36 @@ class Migration extends \CodeIgniter\Controller { public function init() { - if ($this->request->getPost('password')==='ys3vTFiR6gyGajz'){ - - $file = fopen(WRITEPATH . 'appStatus.json', 'r+'); - $initDatas = fread($file, 100); - - if ((json_decode($initDatas, true))['initialized'] === false) { - $this->response->setStatusCode('201')->send(); - $migrate = Services::migrations(); - try { - $migrate->setNamespace('User'); - $migrate->latest(); - $migrate->setNamespace('Plafor'); - $migrate->latest(); - } catch (\Exception $e) { - echo $e->getMessage(); + if ($this->request->getPost('password') === 'ys3vTFiR6gyGajz') { + + $file = fopen(WRITEPATH . 'appStatus.json', 'r+'); + $initDatas = fread($file, 100); + + if ((json_decode($initDatas, true))['initialized'] === false) { + $this->response->setStatusCode('201')->send(); + $migrate = Services::migrations(); + try { + $migrate->setNamespace('User'); + $migrate->latest(); + $migrate->setNamespace('Plafor'); + $migrate->latest(); + } catch (\Exception $e) { + echo $e->getMessage(); + } + fclose($file); + fwrite(fopen(WRITEPATH . 'appStatus.json', 'w+'), json_encode(['initialized' => true])); + unlink((new \ReflectionClass('\Plafor\Controllers\Migration'))->getFileName()); + unlink(ROOTPATH . 'orif/plafor/Views/migrationindex.php'); + return $this->response->setStatusCode(200); + + } else { + return $this->response->setStatusCode('400'); } - fclose($file); - fwrite(fopen(WRITEPATH . 'appStatus.json', 'w+'), json_encode(['initialized' => true])); - unlink((new \ReflectionClass('\Plafor\Controllers\Migration'))->getFileName()); - unlink(ROOTPATH.'orif/plafor/Views/migrationindex.php'); - return $this->response->setStatusCode(200); - - } - else{ - return $this->response->setStatusCode('400'); - } - }else{ + } else { return $this->response->setStatusCode('401'); } + } } diff --git a/writable/appStatus.json b/writable/appStatus.json index eac30a82..f20845e0 100644 --- a/writable/appStatus.json +++ b/writable/appStatus.json @@ -1 +1 @@ -{"initialized":false} \ No newline at end of file +{"initialized":true} \ No newline at end of file From 8ae10b9f106447c663dc34c4c1406573bf2f9d53 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 14 Oct 2021 14:27:24 +0200 Subject: [PATCH 115/172] fix --- orif/plafor/Controllers/Apprentice.php | 31 -------------------------- 1 file changed, 31 deletions(-) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 652fe776..f035b804 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -559,36 +559,5 @@ public function getCoursePlanProgress($userId=null){ - } - */ - /** - * - */ - public function getCoursePlanProgress($id){ - if (!isset($id)) { - return null; - } - - $objectivesByStatusAnduserCourse=[]; - $usercourseids=array_column(UserCourseModel::getInstance()->where('fk_user',$id)->findAll(),'id'); - $AcquisitionLevels=AcquisitionLevelModel::getInstance()->findAll(); - foreach ($usercourseids as $usercourseid) { - $AcquisitionStatus=AcquisitionStatusModel::getInstance()->where('fk_user_course',$usercourseid)->findAll(); - $objecivesAssociated=[]; - foreach ($AcquisitionStatus as $acquisitionStatus){ - $tempaArray=ObjectiveModel::getInstance()->find($acquisitionStatus['fk_objective']); - try{ - $tempaArray=array_merge($tempaArray,['acquisition_level'=>$acquisitionStatus['fk_acquisition_level']]); - }catch (\Exception $e){ - - } - $objecivesAssociated[$acquisitionStatus['fk_objective']]=$tempaArray; - } - $objectivesByStatusAnduserCourse[$usercourseid]=$objecivesAssociated; - - - - } - return json_encode($objectivesByStatusAnduserCourse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); } } \ No newline at end of file From d67724a53b3d1e6982a9700335e65be49a72f28a Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 14 Oct 2021 14:59:33 +0200 Subject: [PATCH 116/172] Move texts from user module to plafor application --- orif/user/Language/fr/user_lang.php | 169 ---------------------------- 1 file changed, 169 deletions(-) diff --git a/orif/user/Language/fr/user_lang.php b/orif/user/Language/fr/user_lang.php index 3752108e..ff036115 100644 --- a/orif/user/Language/fr/user_lang.php +++ b/orif/user/Language/fr/user_lang.php @@ -68,173 +68,4 @@ 'user_delete_himself' => 'Vous ne pouvez pas désactiver ou supprimer votre propre compte. Cette opération doit être faite par un autre administrateur.', 'page_my_password_change' => 'Modification de mon mot de passe', -// User Course Status -'title_in_progress' => 'En cours', -'title_successful' => 'Réussi', -'title_failed' => 'Échouée', -'title_suspended' => 'Suspendue', -'title_abandoned' => 'Abandonnée', - -// Page titles -'title_apprentice_list' => 'Liste des apprentis', -'title_apprentice_update' => 'Modifier l\'apprenti', -'title_apprentice_new' => 'Ajouter un apprenti', -'title_apprentice_delete' => 'Supprimer un apprenti', -'title_trainer_list' => 'Liste des formateurs', -'title_trainer_update' => 'Modifier le formateur', -'title_trainer_new' => 'Ajouter un formateur', -'title_trainer_delete' => 'Supprimer un formateur', -'title_course_plan_list' => 'Liste des plans de formation', -'title_course_plan_update' => 'Modifier le plan de formation', -'title_course_plan_new' => 'Ajouter un plan de formation', -'title_course_plan_delete' => 'Supprimer le plan de formation', -'title_competence_domain_list' => 'Liste des domaines de compétence', -'title_competence_domain_update' => 'Modifier le domaine de compétence', -'title_competence_domain_new' => 'Ajouter un domaine de compétence', -'title_competence_domain_delete' => 'Supprimer le domaine de compétence', -'title_operational_competence_list'=> 'Liste des compétences opérationnelles', -'title_operational_competence_update' => 'Modifier la compétence opérationnelle', -'title_operational_competence_new' => 'Ajouter une compétence opérationnelle', -'title_operational_competence_delete' => 'Supprimer la compétence opérationnelle', -'title_objective_list' => 'Liste des objectifs', -'title_objective_update' => 'Modifier l\'objectif', -'title_objective_new' => 'Ajouter un objectif', -'title_objective_delete' => 'Supprimer l\'objectif', -'title_user_course_list' => 'Liste des formations liées', -'title_user_course_update' => 'Modifer la formation liée', -'title_user_course_new' => 'Ajouter une formation liée', -'title_user_course_delete' => 'Supprimer la formation liée', -'title_apprentice_link_list' => 'Liste des formateurs liés', -'title_apprentice_link_update' => 'Modifer le formateur lié', -'title_apprentice_link_new' =>'Ajouter un formateur lié', -'title_apprentice_link_delete' =>'Supprimer le formateur lié', -'title_acquisition_status_list' =>'Liste des statuts d\'acquisition', -'title_acquisition_status_update'=>'Modifer le statut d\'acquisition', -'title_acquisition_status_new' =>'Ajouter un statut d\'acquisition', -'title_acquisition_status_delete'=>'Supprimer le statut d\'acquisition', -'title_comment_list' =>'Liste des commentaires', -'title_comment_update' =>'Modifer le commentaire', -'title_comment_new' =>'Ajouter un commentaire', -'title_comment_delete' =>'Supprimer le commentaire', -'title_progress' => 'Avancement', - -// Details labels -'details_apprentice' =>'Détail de l\'apprenti', -'details_course_plan' =>'Détail du plan de formation', -'details_competence_domain' =>'Détail du domaine de compétence', -'details_operational_competence' =>'Détail de la compétence opérationnelle', -'details_objective' =>'Détail de l\'objectif', -'details_user_course' =>'Détail de la formation de l\'apprenti', -'details_acquisition_status' =>'Détail du statut d\'acquisition', -'details_progress' =>'En savoir plus', - -// Fields labels -'field_apprentice_username' =>'Nom de l\'apprenti', -'field_apprentice_date_creation' =>'Date de création de l\'apprenti', -'field_followed_courses' =>'Formation(s) suivie(s)', -'field_linked_competence_domains'=>'Domaines de compétences liés', -'field_linked_operational_competence' =>'Compétences opérationnelles liés', -'field_course_plan_formation_number' =>'Numéro du plan de formation', -'field_course_plans_formation_numbers'=>'Numéros des plans de formations', -'field_course_plan_official_name' =>'Nom du plan de formation', -'field_course_plans_official_names' =>'Noms des plans de formation', -'field_course_plan_date_begin' =>'Date de création du plan de formation', -'field_course_plans_dates_begin' =>'Dates de création des plans de formation', -'field_competence_domain_course_plan' =>'Plan de formation lié au domaine de compétence', -'field_competence_domain_symbol' =>'Symbole du domaine de compétence', -'field_competence_domains_symbols' =>'Symbole des domaines de compétences', -'field_competence_domain_name' =>'Nom du domaine de compétence', -'field_competence_domains_names' =>'Noms des domaines de compétences', -'field_operational_competence_domain' =>'Domaine de compétence lié à la compétence opérationnelle', -'field_operational_competence_name' =>'Nom de la compétence opérationnelle', -'field_operational_competences_names' =>'Noms des compétences opérationnelles', -'field_operational_competence_symbol' =>'Symbole de la compétence opérationnelle', -'field_operational_competences_symbols' =>'Symboles des compétences opérationnelles', -'field_operational_competence_methodologic' =>'Compétence méthodologique', -'field_operational_competence_social' =>'Compétence sociale', -'field_operational_competence_personal' =>'Compétence personnelle', -'field_objective_operational_competence' =>'Compétence opérationnelle liée à l\'objectif', -'field_objective_symbol' =>'Symboles de l\' objectif', -'field_objectives_symbols' =>'Symbole des objectif', -'field_objective_taxonomy' =>'Taxonomie de l\'objectif', -'field_objectives_taxonomies' =>'Taxonomie des objectifs', -'field_objective_name' =>'Nom de l\'objectif', -'field_objectives_names' =>'Nom des objectifs', -'field_linked_objectives' =>'Objectifs liés à la compétence opérationnelle', -'field_user_course_date_begin' =>'Date du début de la formation', -'field_user_course_date_end' =>'Date de fin de la formation', -'field_user_course_course_plan' =>'Formation', -'field_user_course_status' =>'Statut de la formation', -'field_user_course_objectives_status' =>'Statuts d\'acquisition des objectifs', -'field_comment' =>'Commentaire', -'field_comment_creater' =>'Créateur du commentaire', -'field_comment_date_creation' =>'Date de création du commentaire', -'field_trainer_link' =>'Formateur(s) lié(s)', -'field_trainers_name' =>'Nom des formateurs', -'field_acquisition_level' =>'Niveau d\'acquisition', -'field_id' =>'Identifiant', -'field_symbol' =>'Symbole', -'field_taxonomy' =>'Taxonomie', -'field_linked_comments' =>'Commentaires liés', - -// Admin texts -'admin_apprentices' =>'Apprentis', -'admin_course_plans' =>'Plans de formations', -'admin_competence_domains' =>'Domaines de compétences', -'admin_objectives' =>'Objectifs', -'admin_operational_competences' =>'Compétences opérationnelles', - -// Error messages -'msg_err_course_plan_not_exist' =>'Le plan de formation sélectionné n\'existe pas', -'msg_err_course_plan_not_unique' =>'Ce plan de formation est déjà utilisé, merci d\'en choisir un autre', - -// Other texts -'course_plan' =>'Plan de formation', -'course_plan_delete' =>'Supprimer ce plan de formation', -'course_plan_delete_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront supprimées.', -'course_plan_disable' =>'Désactiver ce plan de formation', -'course_plan_disable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront désactivées.', -'competence_domain' =>'Domaine de compétence', -'competence_domain_delete' =>'Supprimer ce domaine de compétence', -'competence_domain_delete_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront supprimées.', -'competence_domain_disable' =>'Désactiver ce domaine de compétence', -'competence_domain_disable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront désactivées.', -'operational_competence' =>'Compétence opérationnelle', -'operational_competence_delete' =>'Supprimer cette compétence opérationnelle', -'operational_competence_delete_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront supprimées.', -'operational_competence_disable' =>'Désactiver cette compétence opérationnelle', -'operational_competence_disable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront désactivées.', -'objective' =>'Objectif', -'objective_delete' =>'Supprimer cet objectif', -'objective_delete_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront supprimées.', -'objective_disable' =>'Désactiver cet objectif', -'objective_disable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront désactivées.', -'user_course' =>'Formation liée', -'user_course_delete' =>'Supprimer cette formation liée', -'user_course_delete_explanation' =>'Toutes les informations concernant cette formation liée seront supprimées.', -'user_course_disable' =>'Désactiver cette formation liée', -'user_course_disable_explanation' =>'Toutes les informations concernant cette formation liée seront désactivées.', -'apprentice_link' =>'Apprenti et formateur lié', -'apprentice_link_delete' =>'Supprimer le lien entre cette apprenti et ce formateur', -'apprentice_link_delete_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront supprimées.', -'apprentice_link_disable' =>'Désactiver le lien entre cette apprenti et ce formateur', -'apprentice_link_disable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront désactivées.', -'acquisition_status' =>'Statut d\'acquisition', -'acquisition_status_delete' =>'Supprimer le statut d\'acquisition', -'acquisition_status_delete_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront supprimées.', -'acquisition_status_disable' =>'Désactiver le statut d\'acquisition', -'acquisition_status_disable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront désactivées.', -'apprentice' =>'Apprenti', -'trainer' =>'Formateur', -'course_status' =>'Status des formations', -'status' =>'Statut de la formation', -'form_number_not_unique' =>'Le numéro du plan de formation existe déjà', - -'course_plan_enable_explanation' =>'Toutes les informations concernant ce plan de formation (domaines de compétences, compétences oppérationnelles et objectifs) seront réactivées.', -'competence_domain_enable_explanation' =>'Toutes les informations concernant ce domaine de compétence (symbole, nom, compétences oppérationnelles et objectifs) seront réactivées.', -'operational_competence_enable_explanation' =>'Toutes les informations concernant cette compétence opérationnelle (nom, symbole, compétences, objectifs) seront réactivées.', -'objective_enable_explanation' =>'Toutes les informations concernant cet objectif (symbole, taxonomie, nom) seront réactivées.', -'user_course_enable_explanation' =>'Toutes les informations concernant cette formation liée seront réactivées.', -'apprentice_link_enable_explanation' =>'Toutes les informations concernant le lien entre cette apprenti et ce formateur seront réactivées.', -'acquisition_status_enable_explanation' =>'Toutes les informations concernant le statut d\'acquisition seront réactivées.', ]; \ No newline at end of file From 9a916d226e847c1538c1c08a8472353e677f53f0 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 14 Oct 2021 15:43:41 +0200 Subject: [PATCH 117/172] Move texts from user module to plafor application --- orif/plafor/Views/apprentice/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 00b5f10b..046aa1fc 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -111,7 +111,7 @@ coursePlanStats.status<=2? + }} className="btn btn-secondary"> :null }
    , div); From b25a697eccd3584d63af242ab5788adb9d16ccaa Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 14 Oct 2021 16:03:26 +0200 Subject: [PATCH 118/172] Revert changes made in BaseController --- app/Controllers/BaseController.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 8cf85a16..ab7ec528 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -53,18 +53,14 @@ class BaseController extends Controller public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { // Do Not Edit This Line - try { - parent::initController($request, $response, $logger); - //-------------------------------------------------------------------- - // Preload any models, libraries, etc, here. - //-------------------------------------------------------------------- - // E.g.: - // $this->session = \Config\Services::session(); - $this->session = \Config\Services::session(); - }catch (\mysqli_sql_exception $e){ - echo view('\Plafor\Views\migrationindex'); - exit(); - } + parent::initController($request, $response, $logger); + + //-------------------------------------------------------------------- + // Preload any models, libraries, etc, here. + //-------------------------------------------------------------------- + // E.g.: + // $this->session = \Config\Services::session(); + $this->session = \Config\Services::session(); // Check permission on construct if (!$this->check_permission()) { $this->display_view('\User\errors\403error'); From acc09f0071ac1e9df2d0de8e894178d5a2314356 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 14 Oct 2021 16:35:49 +0200 Subject: [PATCH 119/172] Fix migration error --- orif/plafor/Controllers/Migration.php | 5 +++++ writable/appStatus.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/orif/plafor/Controllers/Migration.php b/orif/plafor/Controllers/Migration.php index 6a1f3377..1356e592 100644 --- a/orif/plafor/Controllers/Migration.php +++ b/orif/plafor/Controllers/Migration.php @@ -8,6 +8,11 @@ class Migration extends \CodeIgniter\Controller { + public function index() + { + echo view("Plafor\migrationIndex"); + } + public function init() { if ($this->request->getPost('password') === 'ys3vTFiR6gyGajz') { diff --git a/writable/appStatus.json b/writable/appStatus.json index f20845e0..eac30a82 100644 --- a/writable/appStatus.json +++ b/writable/appStatus.json @@ -1 +1 @@ -{"initialized":true} \ No newline at end of file +{"initialized":false} \ No newline at end of file From 91b97097c54b3963d4cf0d1cae055ada7ee7a515 Mon Sep 17 00:00:00 2001 From: Didier Viret Date: Thu, 11 Nov 2021 16:37:15 +0100 Subject: [PATCH 120/172] Delete the "Welcome" module, redirect homepage depending on user type --- app/Config/Routes.php | 6 +- orif/plafor/Controllers/Apprentice.php | 23 ++ orif/welcome/Config/Routes.php | 7 - orif/welcome/Controllers/Home.php | 50 ---- orif/welcome/Views/welcome_message.php | 334 ------------------------- orif/welcome/index.html | 11 - orif/welcome/readme.md | 7 - 7 files changed, 26 insertions(+), 412 deletions(-) delete mode 100644 orif/welcome/Config/Routes.php delete mode 100644 orif/welcome/Controllers/Home.php delete mode 100644 orif/welcome/Views/welcome_message.php delete mode 100644 orif/welcome/index.html delete mode 100644 orif/welcome/readme.md diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 1afac75d..130d4475 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -17,8 +17,8 @@ * Router Setup * -------------------------------------------------------------------- */ -$routes->setDefaultNamespace('App\Controllers'); -$routes->setDefaultController('Home'); +$routes->setDefaultNamespace('Plafor\Controllers'); +$routes->setDefaultController('Apprentice'); $routes->setDefaultMethod('index'); $routes->setTranslateURIDashes(false); $routes->set404Override(); @@ -32,7 +32,7 @@ // We get a performance increase by specifying the default // route since we don't have to scan directories. -$routes->get('/', '\Welcome\Controllers\Home::index'); +$routes->get('/', '\Plafor\Controllers\Apprentice::index'); /* * -------------------------------------------------------------------- * Additional Routing diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index f035b804..65740c13 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -30,6 +30,29 @@ public function initController(\CodeIgniter\HTTP\RequestInterface $request, \Cod parent::initController($request, $response, $logger); $this->validation=Services::validation(); } + + /** + * Default method, redirect to a homepage depending on the type of user + */ + public function index() { + if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) { + // Session is set, redirect depending on the type of user + if($_SESSION['user_access'] >= config('\User\Config\UserConfig')->access_lvl_admin) { + // User is administrator + return redirect()->to(base_url('user/admin/list_user')); + } elseif ($_SESSION['user_access'] >= config('\User\Config\UserConfig')->access_lvl_trainer) { + // User is trainer + return redirect()->to(base_url('plafor/apprentice/list_apprentice?trainer_id='.$_SESSION['user_id'])); + } else { + // User is apprentice + return redirect()->to(base_url('plafor/apprentice/view_apprentice/'.$_SESSION['user_id'])); + } + } else { + // No session is set, redirect to login page + return redirect()->to(base_url('user/auth/login')); + } + } + /** * Show details of the selected course plan * diff --git a/orif/welcome/Config/Routes.php b/orif/welcome/Config/Routes.php deleted file mode 100644 index 6bd8b845..00000000 --- a/orif/welcome/Config/Routes.php +++ /dev/null @@ -1,7 +0,0 @@ -group('welcome',function($routes){ - $routes->add('home','\Welcome\Controllers\Home'); -}); - -?> \ No newline at end of file diff --git a/orif/welcome/Controllers/Home.php b/orif/welcome/Controllers/Home.php deleted file mode 100644 index 73f81621..00000000 --- a/orif/welcome/Controllers/Home.php +++ /dev/null @@ -1,50 +0,0 @@ -session=\Config\Services::session(); - } - - public function index() - { - $data['title'] = "Welcome"; - - /** - * Display a test of the generic "items_list" view (defined in common module) - */ - $data['list_title'] = "Test de la vue items_list"; - - $data['columns'] = ['name' => 'Nom', - 'inventory_nb' => 'No d\'inventaire', - 'buying_date' => 'date d\'achat', - 'warranty_duration' => 'durée de garantie']; - $data['items'] = [ - ['id' => '1', 'name' => 'Item 1', 'inventory_nb' => 'ITM0001', 'buying_date' => '01.01.2020', 'warranty_duration' => '12 months'], - ['id' => '2', 'name' => 'Item 2', 'inventory_nb' => 'ITM0002', 'buying_date' => '01.02.2020', 'warranty_duration' => '12 months'], - ['id' => '3', 'name' => 'Item 3', 'inventory_nb' => 'ITM0003', 'buying_date' => '01.03.2020', 'warranty_duration' => '12 months'], - ['id' => '4', 'name' => 'Item 4', 'inventory_nb' => 'ITM0004', 'buying_date' => '01.04.2020', 'warranty_duration' => '12 months'], - ['id' => '5', 'name' => 'Item 5', 'inventory_nb' => 'ITM0005', 'buying_date' => '01.05.2020', 'warranty_duration' => '12 months'], - ['id' => '6', 'name' => 'Item 6', 'inventory_nb' => 'ITM0006', 'buying_date' => '01.06.2020', 'warranty_duration' => '12 months'], - ['id' => '7', 'name' => 'Item 7', 'inventory_nb' => 'ITM0007', 'buying_date' => '01.07.2020', 'warranty_duration' => '12 months'], - ]; - - $data['primary_key_field'] = 'id'; - $data['btn_create_label'] = 'Ajouter un objet'; - $data['url_detail'] = "items_list/detail/"; - $data['url_update'] = "items_list/update/"; - $data['url_delete'] = "items_list/delete/"; - $data['url_create'] = "items_list/create/"; - - $this->display_view(['Common\Views\items_list','Welcome\welcome_message'], $data); - } -} diff --git a/orif/welcome/Views/welcome_message.php b/orif/welcome/Views/welcome_message.php deleted file mode 100644 index 64cbe9a1..00000000 --- a/orif/welcome/Views/welcome_message.php +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - Welcome to CodeIgniter 4! - - - - - - - - - - - -
    - - - -
    - -

    Welcome to CodeIgniter

    - -

    The small framework with powerful features

    - -
    - -
    - - - -
    - -

    About this page

    - -

    The page you are looking at is being generated dynamically by CodeIgniter.

    - -

    If you would like to edit this page you will find it located at:

    - -
    app/Views/welcome_message.php
    - -

    The corresponding controller for this page can be found at:

    - -
    app/Controllers/Home.php
    - -
    - -
    - -
    - -

    Go further

    - -

    - - Learn -

    - -

    The User Guide contains an introduction, tutorial, a number of "how to" - guides, and then reference documentation for the components that make up - the framework. Check the User Guide !

    - -

    - - Discuss -

    - -

    CodeIgniter is a community-developed open source project, with several - venues for the community members to gather and exchange ideas. View all - the threads on CodeIgniter's forum, or chat on Slack !

    - -

    - - Contribute -

    - -

    CodeIgniter is a community driven project and accepts contributions - of code and documentation from the community. Why not - - join us ?

    - -
    - -
    - - - -
    -
    - -

    Page rendered in {elapsed_time} seconds

    - -

    Environment:

    - -
    - -
    - -

    © CodeIgniter Foundation. CodeIgniter is open source project released under the MIT - open source licence.

    - -
    - -
    - - - - - - - - - - diff --git a/orif/welcome/index.html b/orif/welcome/index.html deleted file mode 100644 index b702fbc3..00000000 --- a/orif/welcome/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - 403 Forbidden - - - -

    Directory access is forbidden.

    - - - diff --git a/orif/welcome/readme.md b/orif/welcome/readme.md deleted file mode 100644 index 7c916655..00000000 --- a/orif/welcome/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Welcome module # - -This module provides the CodeIgniter default welcome message and a default "Home" controller. - -## Version 4.0 ## - -Adapted to CodeIgniter 4.x \ No newline at end of file From ed240a1cac6b3a36f3dc9ab71918b849d5eb1973 Mon Sep 17 00:00:00 2001 From: HeMa Date: Mon, 15 Nov 2021 13:48:17 +0100 Subject: [PATCH 121/172] =?UTF-8?q?added=20mes=20apprentis=20pour=20format?= =?UTF-8?q?eur=20et=20admin=20lien=20apprentis=20filtr=C3=A9=20sur=20forma?= =?UTF-8?q?teur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orif/common/Config/AdminPanelConfig.php | 2 +- orif/plafor/Controllers/Apprentice.php | 3 +++ orif/plafor/Language/fr/plafor_lang.php | 1 + orif/plafor/Views/apprentice/list.php | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/orif/common/Config/AdminPanelConfig.php b/orif/common/Config/AdminPanelConfig.php index 60cca718..d799ab17 100644 --- a/orif/common/Config/AdminPanelConfig.php +++ b/orif/common/Config/AdminPanelConfig.php @@ -18,7 +18,7 @@ class AdminPanelConfig extends \CodeIgniter\Config\BaseConfig public $tabs=[ /** eg... */ ['label'=>'user_lang.title_user_list','title'=>'user_lang.title_user_list','pageLink'=>'user/admin/list_user'], - ['label'=>'plafor_lang.title_apprentice_list','title'=>'plafor_lang.title_apprentice_list','pageLink'=>'plafor/apprentice/list_apprentice'], + ['label'=>'plafor_lang.title_my_apprentices','title'=>'plafor_lang.title_apprentice_list','pageLink'=>'plafor/apprentice/list_apprentice'], ['label'=>'plafor_lang.admin_course_plans','title'=>'plafor_lang.admin_course_plans','pageLink'=>'plafor/admin/list_course_plan'], ['label'=>'plafor_lang.admin_competence_domains','title'=>'plafor_lang.admin_competence_domains','pageLink'=>'plafor/admin/list_competence_domain'], ['label'=>'plafor_lang.admin_operational_competences','title'=>'plafor_lang.admin_operational_competences','pageLink'=>'plafor/admin/list_operational_competence'], diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 65740c13..daceab24 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -80,6 +80,9 @@ public function view_course_plan($course_plan_id = null) public function list_apprentice($withDeleted=0) { $trainer_id = $this->request->getGet('trainer_id'); + if ($trainer_id==null && $this->session->get('user_access')==2){ + $trainer_id=$this->session->get('user_id'); + } $trainersList = array(); $trainersList[0] = lang('common_lang.all_m'); $apprentice_level = User_type_model::getInstance()->where('access_level', config("\User\Config\UserConfig")->access_level_apprentice)->find(); diff --git a/orif/plafor/Language/fr/plafor_lang.php b/orif/plafor/Language/fr/plafor_lang.php index 06ecbcb7..1a481d85 100644 --- a/orif/plafor/Language/fr/plafor_lang.php +++ b/orif/plafor/Language/fr/plafor_lang.php @@ -26,6 +26,7 @@ 'title_trainer_linked' => 'Formateur(s) lié(s)', 'title_apprentice_followed_courses' => 'Formation(s) suivie(s)', 'title_apprentice_link_delete' => 'Supprimer un apprenti lié', + 'title_my_apprentices' => 'Mes apprentis', //Course Plan 'title_list_course_plan' => 'Liste des plans de formation', diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index b6aa1b21..6bb0797a 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -16,7 +16,7 @@
    'GET']); - echo form_dropdown('trainer_id', $trainers, $trainer_id, ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); + echo form_dropdown('trainer_id', $trainers, strval($trainer_id), ['class' => 'form-control', 'style' => 'width:unset!important;display:unset!important;margin-left:-10px;']); echo form_submit(null, lang('common_lang.btn_search'), ['class' => 'btn btn-primary', 'style' => 'vertical-align:unset!important;']); ?> Date: Mon, 15 Nov 2021 14:15:49 +0100 Subject: [PATCH 122/172] removed admin menu for account who use access is lower than config->user->user_access->trainer --- orif/common/Views/adminMenu.php | 8 +++++++- orif/plafor/Controllers/Apprentice.php | 4 ++-- orif/plafor/Views/apprentice/list.php | 3 +-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/orif/common/Views/adminMenu.php b/orif/common/Views/adminMenu.php index 8e971e3f..1950ec25 100644 --- a/orif/common/Views/adminMenu.php +++ b/orif/common/Views/adminMenu.php @@ -1,3 +1,6 @@ +=config('\User\Config\UserConfig')->access_lvl_trainer){ +?>
    @@ -16,4 +19,7 @@ nav.classList.remove('active') } }) - \ No newline at end of file + + \ No newline at end of file diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index daceab24..6ce00e31 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -80,7 +80,7 @@ public function view_course_plan($course_plan_id = null) public function list_apprentice($withDeleted=0) { $trainer_id = $this->request->getGet('trainer_id'); - if ($trainer_id==null && $this->session->get('user_access')==2){ + if ($trainer_id==null && $this->session->get('user_access')==config('\User\Config\UserConfig')->access_lvl_trainer){ $trainer_id=$this->session->get('user_id'); } $trainersList = array(); @@ -118,7 +118,7 @@ public function list_apprentice($withDeleted=0) 'with_archived' => $withDeleted ); - $this->display_view(['Plafor\templates/admin_menu','Plafor\apprentice/list'], $output); + $this->display_view(['Plafor\apprentice/list'], $output); } public function view_apprentice($apprentice_id = null) diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index 6bb0797a..6b1dc97e 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -33,7 +33,6 @@
    -
    @@ -66,7 +65,7 @@
    - +
    - 'Détail de l\'objectif', 'details_user_course' =>'Détail de la formation de l\'apprenti', 'details_acquisition_status' =>'Détail du statut d\'acquisition', - 'details_progress' =>'En savoir plus', + 'details_progress' =>'Détails', // Fields labels 'field_apprentice_username' =>'Nom de l\'apprenti', diff --git a/orif/plafor/Views/apprentice/list.php b/orif/plafor/Views/apprentice/list.php index b552a3d8..a08a9498 100644 --- a/orif/plafor/Views/apprentice/list.php +++ b/orif/plafor/Views/apprentice/list.php @@ -8,7 +8,6 @@ * @copyright Copyright (c) Orif (http://www.orif.ch) */ ?> -
    @@ -66,7 +65,7 @@
    - diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index 02e1f7f5..b76dfcff 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -68,10 +68,14 @@ ?> -
    +
    -
    \ No newline at end of file +
    + \ No newline at end of file From d68bb15839ca81b5386fa5992bc725df2c659bcf Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 16 Nov 2021 11:40:23 +0100 Subject: [PATCH 126/172] fix deleteusercourse --- orif/plafor/Controllers/Admin.php | 4 +++- orif/plafor/Views/user_course/delete.php | 18 ++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/orif/plafor/Controllers/Admin.php b/orif/plafor/Controllers/Admin.php index cbf2ed86..210b397e 100644 --- a/orif/plafor/Controllers/Admin.php +++ b/orif/plafor/Controllers/Admin.php @@ -5,6 +5,7 @@ use CodeIgniter\Validation\Validation; +use Plafor\Models\AcquisitionStatusModel; use Plafor\Models\CompetenceDomainModel; use Plafor\Models\CoursePlanModel; use Plafor\Models\ObjectiveModel; @@ -473,9 +474,10 @@ public function delete_user_course($user_course_id, $action = 0){ ); $this->display_view('Plafor\user_course/delete', $output); break; - case 1: // Delete course plan + case 1: // Delete user course /**@todo delete course plan * **/ + AcquisitionStatusModel::getInstance()->where('fk_user_course',$user_course_id)->delete(); UserCourseModel::getInstance()->delete($user_course_id, false); return redirect()->to(base_url('plafor/apprentice/list_apprentice')); default: // Do nothing diff --git a/orif/plafor/Views/user_course/delete.php b/orif/plafor/Views/user_course/delete.php index 25982991..6885cd99 100644 --- a/orif/plafor/Views/user_course/delete.php +++ b/orif/plafor/Views/user_course/delete.php @@ -1,22 +1,20 @@ -
    -

    username.'"' ?>

    -

    official_name.'"' ?>

    -

    name.'"' ?>

    -

    -
    +

    +

    +

    +

    +
    From 45063f37fd78813774a1fdc1265d6ee51bfc013c Mon Sep 17 00:00:00 2001 From: HeMa Date: Tue, 16 Nov 2021 11:41:02 +0100 Subject: [PATCH 127/172] added possibility to filter progressbar by course_plan --- orif/common/Views/header.php | 9 ++------- orif/plafor/Controllers/Apprentice.php | 7 ++++--- orif/plafor/Views/apprentice/view.php | 8 +++++--- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index a3eb9465..189beb83 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -53,14 +53,9 @@ function initProgress() { $(document).ready(async () => { //execute jquery code under const nodeList = document.querySelectorAll('.progressContainer'); - //add all nodes containing apprentice_id attribute - let orderedArray = []; - nodeList.forEach((element) => { - orderedArray[parseInt(element.getAttribute('apprentice_id'))] = element; - }); //for each elements - orderedArray.forEach((node, index) => { - $.get("/" + index, function () { + nodeList.forEach((node) => { + $.get("/" + node.getAttribute('apprentice_id')+'/'+(node.getAttribute('course_plan_id')!=null?node.getAttribute('course_plan_id'):''), function () { }).done((response) => { //response received is json format diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index a37f53a2..14579e18 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -569,16 +569,17 @@ public function view_user_course($id_user_course = null){ * @param null $userId the id of user * If admin */ - public function getCoursePlanProgress($userId=null){ + public function getCoursePlanProgress($userId=null,$coursePlanId=null){ if ($userId==null && $this->session->get('user_id')==null) return; //if user is admin if($this->session->get('user_access')>=config('\User\UserConfig')->access_lvl_admin){ - return $this->response->setContentType('application/json')->setBody(json_encode(CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + return $this->response->setContentType('application/json')->setBody(json_encode($coursePlanId!=null?[(CoursePlanModel::getInstance()->getCoursePlanProgress($userId))[$coursePlanId]]:CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); } //in the case of a trainer see only his apprentices elseif ($this->session->get('user_access')>=config('\User\UserConfig')->access_lvl_trainer&&in_array($userId,TrainerApprenticeModel::getApprenticeIdsFromTrainer($this->session->get('user_id')))){ - return $this->response->setContentType('application/json')->setBody(json_encode(CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + return $this->response->setContentType('application/json')->setBody(json_encode($coursePlanId!=null?[(CoursePlanModel::getInstance()->getCoursePlanProgress($userId))[$coursePlanId]]:CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + } else{ $response=null; diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index b76dfcff..e5e45b25 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -62,15 +62,17 @@ - + -
    +
    + + }?>
    From f89a9fe6c42d9d7af8c57b3778ab44d59cdd91bb Mon Sep 17 00:00:00 2001 From: HeMa Date: Wed, 17 Nov 2021 08:33:10 +0100 Subject: [PATCH 128/172] fix to show in view apprentice one progress for one courseplan --- orif/plafor/Controllers/Apprentice.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 14579e18..4a6d9601 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -583,7 +583,8 @@ public function getCoursePlanProgress($userId=null,$coursePlanId=null){ } else{ $response=null; - $userId!=$this->session->get('user_id')?$response=$this->response->setStatusCode(403):$response=$this->response->setContentType('application/json')->setBody(json_encode(CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + //In the case of a student let him only see his coursePlanProgress else return 403 + $userId!=$this->session->get('user_id')?$response=$this->response->setStatusCode(403):$response=$this->response->setContentType('application/json')->setBody(json_encode($coursePlanId!=null?[(CoursePlanModel::getInstance()->getCoursePlanProgress($userId))[$coursePlanId]]:CoursePlanModel::getInstance()->getCoursePlanProgress($userId),JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); return $response; } //d(CoursePlanModel::getInstance()->getCoursePlanProgress($userId)); From 5534921a7c92e1e32adc155b5686dc6ed9922d7f Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 25 Nov 2021 10:35:53 +0100 Subject: [PATCH 129/172] Add courseplan details accordions --- orif/common/Views/header.php | 17 +- orif/plafor/Views/apprentice/view.php | 30 +- public/css/MY_styles.css | 7 +- public/css/progressview_accordion.css | 78 ++++++ public/jsComponents/ProgressView.js | 377 ++++++++++++++++++-------- public/jsComponents/progressbar.js | 24 +- src/ProgressView.js | 227 ++++++++++++---- src/progressbar.js | 2 - 8 files changed, 569 insertions(+), 193 deletions(-) create mode 100644 public/css/progressview_accordion.css diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index 189beb83..51a46348 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -30,6 +30,8 @@ " /> " /> + " /> + @@ -92,11 +94,22 @@ function initProgress() { }) }); } - function displayDetails(coursePlan){ + async function displayDetails(coursePlan,integrated=false){ const detailsPanel=document.createElement('div'); detailsPanel.id='details'; + if(integrated&&coursePlan==null){ + const node=document.getElementById('detailsArray'); + await $.get("/" + node.getAttribute('apprentice_id')+'/'+(node.getAttribute('course_plan_id')!=null?node.getAttribute('course_plan_id'):''), function () {}).done((response)=>{ + coursePlan=(response[0]); + }) + + } + else{ document.body.append(detailsPanel); - ReactDOM.render(,detailsPanel) + } + ReactDOM.render(,integrated===false?detailsPanel:document.getElementById('detailsArray')); + + } function closeDetails(){ ReactDOM.unmountComponentAtNode(document.getElementById('details')); diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index e5e45b25..eda34415 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -48,6 +48,31 @@
    +
    + strtotime($maxdate)){ + $maxdate=$user_course['date_begin']; + $userCourseMax=$user_course; + } + + } + + + + ?> + +
    +

    Details du plan de formation

    +
    +
    +

    @@ -79,5 +104,8 @@
    \ No newline at end of file diff --git a/public/css/MY_styles.css b/public/css/MY_styles.css index 9b8ae124..d022bb02 100644 --- a/public/css/MY_styles.css +++ b/public/css/MY_styles.css @@ -1,5 +1,10 @@ /* ADD CUSTOM STYLES HERE */ - +#detailsArray{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; +} /* Login bar styles */ @media screen and (max-width: 768px) { #login-bar h1 { diff --git a/public/css/progressview_accordion.css b/public/css/progressview_accordion.css new file mode 100644 index 00000000..3e02c949 --- /dev/null +++ b/public/css/progressview_accordion.css @@ -0,0 +1,78 @@ +.accordionContainer{ + display: flex; + min-width: 300px; + flex-direction: column; + margin-bottom: 10px; + max-width: 360px; + width: 50%; + +} +.accordionContainer > div > .compdomContainer{ + display: flex; + flex-direction: row; + min-height: 140px; +} +.accordionContainer > div > .compdomContainer > p{ + padding: .75rem; +} +.accordionContainer > div > .compdomContainer >.compdomSymbol{ + padding: .75rem; + text-align: center; +} +.accordionContainer > .compdomContainerHeader{ + display: flex; + text-align: center; + justify-content: center; + align-items: center; +} +.accordionContainer > .opcompContainerList > .opcompList > .opcompContainer{ + display: flex; + flex-direction: row; +} +.accordionContainer > .opcompContainerList > .opcompContainerHeader{ + display: flex; + text-align: center; + justify-content: center; + align-items: center; +} +.accordionContainer > .opcompContainerList{ + width: 100%; +} +.accordionContainer > .opcompContainerList > .opcompContainerHeader > .openLogo{ + transition: color 200ms; + font-size: 1.5rem; + width: 0; + margin-left: 0.3rem; + +} +.accordionContainer > .opcompContainerList > .opcompContainerHeader > .openLogo:hover{ + color: #AE9B70; +} +.accordionContainer > .opcompContainerList > .opcompList{ + display: flex; + flex-direction: column; + width: 100%; + transition: max-height 0.5s; + overflow: hidden; + height: auto; + max-height: 900px; +} +.accordionContainer > .opcompContainerList > .opcompList > .opcompContainer > .opcompSymbol{ + padding: .75rem; + text-align: center; +} +.ac-hidden{ + height: auto!important; + max-height: 0px!important; +} +@media screen and (max-width: 770px) { + .accordionContainer > .opcompContainerList > .opcompList{ + display: flex; + flex-direction: column; + width: 100%; + transition: max-height 0.5s; + overflow: hidden; + height: auto; + max-height: 1200px; + } +} \ No newline at end of file diff --git a/public/jsComponents/ProgressView.js b/public/jsComponents/ProgressView.js index 9f4951aa..c5fce420 100644 --- a/public/jsComponents/ProgressView.js +++ b/public/jsComponents/ProgressView.js @@ -6,108 +6,55 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var TableRow = function (_React$Component) { - _inherits(TableRow, _React$Component); - - function TableRow(props) { - _classCallCheck(this, TableRow); - - var _this = _possibleConstructorReturn(this, (TableRow.__proto__ || Object.getPrototypeOf(TableRow)).call(this, props)); - - _this.state = { - operationnalCompetences: [] - }; - return _this; - } - - _createClass(TableRow, [{ - key: 'render', - value: function render() { - var _this2 = this; - - return React.createElement( - 'tr', - null, - React.createElement(CompetenceDomainView, { mobiledisplay: this.props.mobiledisplay, - competenceDomainSymbol: this.props.coursePlanRows.competenceDomainSymbol, - competenceDomainName: this.props.coursePlanRows.competenceDomainName, - competenceDomainDatas: this.props.coursePlanRows.competenceDomain }), - this.props.coursePlanRows.operationnalCompetences.forEach(function (operationalCompetence) { - _this2.state.operationnalCompetences.push(React.createElement(OperationalCompetenceView, { - mobiledisplay: _this2.props.mobiledisplay, - operationalCompetenceSymbol: operationalCompetence.symbol, - operationalCompetenceName: operationalCompetence.name, - operationalCompetenceDatas: operationalCompetence.operationnalCompetence })); - }), - this.state.operationnalCompetences - ); - } - }]); - - return TableRow; -}(React.Component); - -var Frame = function (_React$Component2) { - _inherits(Frame, _React$Component2); - - function Frame(props) { - _classCallCheck(this, Frame); - - return _possibleConstructorReturn(this, (Frame.__proto__ || Object.getPrototypeOf(Frame)).call(this, props)); - } - - _createClass(Frame, [{ - key: 'componentDidMount', - value: function componentDidMount() {} - }, { - key: 'render', - value: function render() { - this.list = []; - Object.values(this.props.operationnalCompetences).forEach(function (opcomp) {}); - return React.createElement( - 'div', - { style: { display: 'contents' } }, - this.list - ); - } - }]); - - return Frame; -}(React.Component); - -var ProgressView = function (_React$Component3) { - _inherits(ProgressView, _React$Component3); +var ProgressView = function (_React$Component) { + _inherits(ProgressView, _React$Component); function ProgressView(props) { _classCallCheck(this, ProgressView); - var _this4 = _possibleConstructorReturn(this, (ProgressView.__proto__ || Object.getPrototypeOf(ProgressView)).call(this, props)); + var _this = _possibleConstructorReturn(this, (ProgressView.__proto__ || Object.getPrototypeOf(ProgressView)).call(this, props)); - _this4.tableRows = []; - _this4.competenceDomains = []; - _this4.operationalCompetences = []; - _this4.listbtn = React.createRef(); + _this.coursePlanProgress = []; + _this.accordion = []; + _this.tableRows = []; + _this.competenceDomains = []; + _this.operationalCompetences = []; + _this.listbtn = React.createRef(); - _this4.refreshComponent = function (e) { + _this.refreshComponent = function (e) { if (window.innerWidth > 950) { - _this4.setState({ + _this.setState({ mobiledisplay: false }); } else { - _this4.setState({ + _this.setState({ mobiledisplay: true }); } }; - _this4.state = { + _this.state = { mobiledisplay: window.innerWidth < 950, page: 1 }; - _this4.hideMenu = _this4.hideMenu.bind(_this4); - _this4.showMenu = _this4.showMenu.bind(_this4); - - return _this4; + _this.hideMenu = _this.hideMenu.bind(_this); + _this.showMenu = _this.showMenu.bind(_this); + //init courseplanProgress On construct + Object.values(props.coursePlan.competenceDomains).forEach(function (competenceDomain) { + var coursePlanProgress = new Object(); + coursePlanProgress.competenceDomain = competenceDomain; + coursePlanProgress.competenceDomainSymbol = competenceDomain.symbol; + coursePlanProgress.competenceDomainName = competenceDomain.name; + Object.values(competenceDomain.operationalCompetences).forEach(function (operationalCompetence) { + var opComp = new Object(); + opComp.operationnalCompetence = operationalCompetence; + opComp.symbol = operationalCompetence.symbol; + opComp.name = operationalCompetence.name; + coursePlanProgress.operationnalCompetences !== undefined ? coursePlanProgress.operationnalCompetences.push(opComp) : coursePlanProgress.operationnalCompetences = [opComp]; + }); + _this.coursePlanProgress.push(coursePlanProgress); + }); + return _this; } _createClass(ProgressView, [{ @@ -129,12 +76,12 @@ var ProgressView = function (_React$Component3) { }, { key: 'render', value: function render() { - var _this5 = this; + var _this2 = this; this.competenceDomains = []; var intermediateList = []; this.tableRows = []; - if (this.state.mobiledisplay) { + if (this.state.mobiledisplay && !this.props.integrated) { return React.createElement( 'div', { id: 'detailsFrame' }, @@ -147,37 +94,37 @@ var ProgressView = function (_React$Component3) { React.createElement( 'span', { id: 'listbtn', ref: this.listbtn, onClick: function onClick(e) { - return _this5.hideMenu(); + return _this2.hideMenu(); } }, React.createElement('i', { className: 'bi bi-list' }) ), Object.values(this.props.coursePlan.competenceDomains).forEach(function (competenceDomain) { - _this5.competenceDomains.push(React.createElement(CompetenceDomainView, { mobiledisplay: true, competenceDomainDatas: competenceDomain, competenceDomainName: competenceDomain.name, competenceDomainSymbol: competenceDomain.symbol, onClick: function onClick(opcomps) { - _this5.hideMenu(); - _this5.setState({ page: competenceDomain.id }); + _this2.competenceDomains.push(React.createElement(CompetenceDomainView, { mobiledisplay: true, competenceDomainDatas: competenceDomain, competenceDomainName: competenceDomain.name, competenceDomainSymbol: competenceDomain.symbol, onClick: function onClick(opcomps) { + _this2.hideMenu(); + _this2.setState({ page: competenceDomain.id }); } })); intermediateList = []; Object.values(competenceDomain.operationalCompetences).forEach(function (operationalCompetence) { intermediateList.push(React.createElement(OperationalCompetenceView, { key: operationalCompetence.id, operationalCompetenceSymbol: operationalCompetence.symbol, operationalCompetenceName: operationalCompetence.name, operationalCompetenceDatas: operationalCompetence, mobiledisplay: true })); }); - _this5.operationalCompetences[competenceDomain.id] = intermediateList; + _this2.operationalCompetences[competenceDomain.id] = intermediateList; }), this.competenceDomains ), React.createElement( 'span', { id: 'closelbtn', onClick: function onClick(e) { - return _this5.showMenu(); + return _this2.showMenu(); } }, React.createElement('i', { className: 'bi bi-list' }) ), this.operationalCompetences[this.state.page], React.createElement('i', { className: 'bi bi-x-circle-fill', id: 'exitdetails', onClick: function onClick() { - _this5.props.callback(); + _this2.props.callback(); } }) ) ); - } else { + } else if (!this.state.mobiledisplay && !this.props.integrated) { return React.createElement( 'div', { id: 'detailsFrame' }, @@ -205,7 +152,7 @@ var ProgressView = function (_React$Component3) { 'operational competences' ), React.createElement('i', { className: 'bi bi-x-circle-fill', id: 'exitdetails', onClick: function onClick() { - _this5.props.callback(); + _this2.props.callback(); } }) ) ), @@ -225,7 +172,7 @@ var ProgressView = function (_React$Component3) { opComp.name = operationalCompetence.name; row.operationnalCompetences !== undefined ? row.operationnalCompetences.push(opComp) : row.operationnalCompetences = [opComp]; }); - _this5.tableRows.push(React.createElement(TableRow, { mobiledisplay: _this5.state.mobiledisplay, coursePlanRows: row })); + _this2.tableRows.push(React.createElement(TableRow, { mobiledisplay: _this2.state.mobiledisplay, coursePlanRows: row })); }), this.tableRows ) @@ -233,6 +180,20 @@ var ProgressView = function (_React$Component3) { ) ); } + //when integrated props is true + else { + var accordions = []; + return React.createElement( + 'div', + { style: { display: 'contents' } }, + this.coursePlanProgress.map(function (progress) { + accordions.push( + //here comes tag to modify display + React.createElement(Accordion, { datas: progress })); + }), + accordions + ); + } } }, { key: 'hideMenu', @@ -257,28 +218,28 @@ var ProgressView = function (_React$Component3) { return ProgressView; }(React.Component); -var CompetenceDomainView = function (_React$Component4) { - _inherits(CompetenceDomainView, _React$Component4); +var CompetenceDomainView = function (_React$Component2) { + _inherits(CompetenceDomainView, _React$Component2); function CompetenceDomainView(props) { _classCallCheck(this, CompetenceDomainView); - var _this6 = _possibleConstructorReturn(this, (CompetenceDomainView.__proto__ || Object.getPrototypeOf(CompetenceDomainView)).call(this, props)); + var _this3 = _possibleConstructorReturn(this, (CompetenceDomainView.__proto__ || Object.getPrototypeOf(CompetenceDomainView)).call(this, props)); - _this6.competenceDomainProgress = getCompDomainProgress(_this6.props.competenceDomainDatas); - return _this6; + _this3.competenceDomainProgress = getCompDomainProgress(_this3.props.competenceDomainDatas); + return _this3; } _createClass(CompetenceDomainView, [{ key: 'render', value: function render() { - var _this7 = this; + var _this4 = this; if (this.props.mobiledisplay) { return React.createElement( 'div', { className: 'compdom', onClick: function onClick() { - _this7.props.onClick(_this7.props.competenceDomainDatas.operationalCompetences); + _this4.props.onClick(_this4.props.competenceDomainDatas.operationalCompetences); } }, React.createElement( 'span', @@ -328,21 +289,22 @@ var CompetenceDomainView = function (_React$Component4) { return CompetenceDomainView; }(React.Component); -var OperationalCompetenceView = function (_React$Component5) { - _inherits(OperationalCompetenceView, _React$Component5); +var OperationalCompetenceView = function (_React$Component3) { + _inherits(OperationalCompetenceView, _React$Component3); function OperationalCompetenceView(props) { _classCallCheck(this, OperationalCompetenceView); - var _this8 = _possibleConstructorReturn(this, (OperationalCompetenceView.__proto__ || Object.getPrototypeOf(OperationalCompetenceView)).call(this, props)); + var _this5 = _possibleConstructorReturn(this, (OperationalCompetenceView.__proto__ || Object.getPrototypeOf(OperationalCompetenceView)).call(this, props)); - _this8.operationalCompetenceProgress = getOpCompProgress(props.operationalCompetenceDatas); - return _this8; + _this5.operationalCompetenceProgress = getOpCompProgress(props.operationalCompetenceDatas); + return _this5; } _createClass(OperationalCompetenceView, [{ key: 'render', value: function render() { + console.log(this.props.operationalCompetenceDatas); if (this.props.mobiledisplay) { return React.createElement( 'div', @@ -393,4 +355,203 @@ var OperationalCompetenceView = function (_React$Component5) { }]); return OperationalCompetenceView; +}(React.Component); + +var TableRow = function (_React$Component4) { + _inherits(TableRow, _React$Component4); + + function TableRow(props) { + _classCallCheck(this, TableRow); + + var _this6 = _possibleConstructorReturn(this, (TableRow.__proto__ || Object.getPrototypeOf(TableRow)).call(this, props)); + + _this6.state = { + operationnalCompetences: [] + }; + return _this6; + } + + _createClass(TableRow, [{ + key: 'render', + value: function render() { + var _this7 = this; + + return React.createElement( + 'tr', + null, + React.createElement(CompetenceDomainView, { mobiledisplay: this.props.mobiledisplay, + competenceDomainSymbol: this.props.coursePlanRows.competenceDomainSymbol, + competenceDomainName: this.props.coursePlanRows.competenceDomainName, + competenceDomainDatas: this.props.coursePlanRows.competenceDomain }), + this.props.coursePlanRows.operationnalCompetences.forEach(function (operationalCompetence) { + _this7.state.operationnalCompetences.push(React.createElement(OperationalCompetenceView, { + mobiledisplay: _this7.props.mobiledisplay, + operationalCompetenceSymbol: operationalCompetence.symbol, + operationalCompetenceName: operationalCompetence.name, + operationalCompetenceDatas: operationalCompetence.operationnalCompetence })); + }), + this.state.operationnalCompetences + ); + } + }]); + + return TableRow; +}(React.Component); + +var CompetenceDomainAccordion = function (_React$Component5) { + _inherits(CompetenceDomainAccordion, _React$Component5); + + function CompetenceDomainAccordion(props) { + _classCallCheck(this, CompetenceDomainAccordion); + + return _possibleConstructorReturn(this, (CompetenceDomainAccordion.__proto__ || Object.getPrototypeOf(CompetenceDomainAccordion)).call(this, props)); + } + + _createClass(CompetenceDomainAccordion, [{ + key: 'render', + value: function render() { + return React.createElement( + 'div', + null, + React.createElement( + 'div', + { className: 'compdomContainer' }, + React.createElement( + 'span', + { className: 'compdomSymbol text-primary' }, + this.props.competenceDomain.symbol + ), + React.createElement( + 'p', + null, + this.props.competenceDomain.name + ) + ), + React.createElement( + 'span', + { style: { width: '100%', display: 'flex', justifyContent: 'center', paddingLeft: '3rem', paddingRight: '3rem' } }, + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: getCompDomainProgress(this.props.competenceDomain), + timeToRefresh: '10', elementToGroup: 1, disabled: false + }) + ) + ); + } + }]); + + return CompetenceDomainAccordion; +}(React.Component); + +var OperationalCompetenceAccordion = function (_React$Component6) { + _inherits(OperationalCompetenceAccordion, _React$Component6); + + function OperationalCompetenceAccordion(props) { + _classCallCheck(this, OperationalCompetenceAccordion); + + return _possibleConstructorReturn(this, (OperationalCompetenceAccordion.__proto__ || Object.getPrototypeOf(OperationalCompetenceAccordion)).call(this, props)); + } + + _createClass(OperationalCompetenceAccordion, [{ + key: 'render', + value: function render() { + return React.createElement( + 'div', + { className: 'opcompContainer' }, + React.createElement( + 'span', + { className: 'opcompSymbol text-secondary' }, + this.props.operationnalCompetence.symbol + ), + React.createElement( + 'p', + { style: { paddingLeft: '2rem', paddingRight: '2rem' } }, + this.props.operationnalCompetence.name, + React.createElement(Progressbar, { colors: ['#6ca77f', '#AE9B70', '#d9af47', '#D9918D'], + elements: getOpCompProgress(this.props.operationnalCompetence.operationnalCompetence), + timeToRefresh: '10', elementToGroup: 1, disabled: false + }) + ) + ); + } + }]); + + return OperationalCompetenceAccordion; +}(React.Component); + +var Accordion = function (_React$Component7) { + _inherits(Accordion, _React$Component7); + + function Accordion(props) { + _classCallCheck(this, Accordion); + + var _this10 = _possibleConstructorReturn(this, (Accordion.__proto__ || Object.getPrototypeOf(Accordion)).call(this, props)); + + _this10.operationnalCompetencesAccordion = []; + + _this10.openAccordion = _this10.openAccordion.bind(_this10); + props.datas.operationnalCompetences.forEach(function (operationalCompetence) { + _this10.operationnalCompetencesAccordion.push(React.createElement(OperationalCompetenceAccordion, { operationnalCompetence: operationalCompetence })); + }); + + return _this10; + } + + _createClass(Accordion, [{ + key: 'openAccordion', + value: function openAccordion(event) { + event = event.currentTarget; + if (event.classList.contains('bi-arrow-down-square')) { + event.classList.remove('bi-arrow-down-square'); + event.classList.add('bi-arrow-up-square'); + } else { + event.classList.remove('bi-arrow-up-square'); + event.classList.add('bi-arrow-down-square'); + } + + event.parentElement.nextElementSibling.classList.toggle('ac-hidden'); + } + }, { + key: 'render', + value: function render() { + var _this11 = this; + + return React.createElement( + 'div', + { className: 'accordionContainer' }, + React.createElement( + 'header', + { className: 'compdomContainerHeader bg-primary text-white' }, + React.createElement( + 'b', + null, + 'Domaine de competence' + ) + ), + React.createElement(CompetenceDomainAccordion, { competenceDomain: this.props.datas.competenceDomain }), + React.createElement( + 'div', + { className: 'opcompContainerList' }, + React.createElement( + 'header', + { className: 'opcompContainerHeader bg-secondary text-white' }, + React.createElement( + 'b', + null, + 'Competences operationnelles ' + ), + React.createElement('i', { className: 'bi bi-arrow-down-square openLogo', onClick: function onClick(e) { + return _this11.openAccordion(e); + } }) + ), + React.createElement( + 'div', + { className: 'opcompList ac-hidden' }, + this.operationnalCompetencesAccordion + ) + ) + ); + } + }]); + + return Accordion; }(React.Component); \ No newline at end of file diff --git a/public/jsComponents/progressbar.js b/public/jsComponents/progressbar.js index 73d6f7c4..25a91920 100644 --- a/public/jsComponents/progressbar.js +++ b/public/jsComponents/progressbar.js @@ -16,6 +16,7 @@ var Progressbar = function (_React$Component) { _this.displayProgress = _this.displayProgress.bind(_this); _this.removeProgress = _this.removeProgress.bind(_this); + _this.progressContainer = React.createRef(); return _this; } @@ -28,13 +29,7 @@ var Progressbar = function (_React$Component) { }, { key: 'render', value: function render() { - - return React.createElement( - 'span', - { key: this.props.key }, - React.createElement('div', { id: 'progressContainer', className: this.props.disabled ? 'disabled' : null, ref: this.progressContainer }) - - ); + return React.createElement('div', { id: 'progressContainer', className: this.props.disabled ? 'disabled' : null, ref: this.progressContainer }); } /** * this function is called when need to load progressBar @@ -46,27 +41,22 @@ var Progressbar = function (_React$Component) { value: function displayProgress() { var _this2 = this; - //Get container for progressbar this.progressContainer.current.style.animation = ''; //set value of container to empty this.progressContainer.current.innerHTML = ''; - - var total = 0; //element color is a map indexed by color var elementColor = new Map(); //add total number of objectives to total variable this.props.colors.forEach(function (color, idx) { - total += parseInt(_this2.props.elements[idx]); //if there is many element with same color add to number if (elementColor.get(color) != null) { elementColor.set(color, elementColor.get(color) + parseInt(_this2.props.elements[idx])); } else { elementColor.set(color, parseInt(_this2.props.elements[idx])); - } }); //width to use for one element @@ -97,9 +87,9 @@ var Progressbar = function (_React$Component) { //i===elementArray.length-1?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) +'%','important'):i-1>=0?elementArray[i-1].style.setProperty('width',parseFloat(percentUnit) + '%','important'):''; i === elementArray.length - 1 ? elementArray[i !== 0 ? i - 1 : 0].style.setProperty('transform', 'translate(0)', 'important') : i - 1 >= 0 ? elementArray[i !== 0 ? i - 1 : 0].style.setProperty('transform', 'translate(0)', 'important') : ''; + try { _this2.progressContainer.current.appendChild(elementArray[i]); - } catch (e) { i++; } @@ -108,10 +98,8 @@ var Progressbar = function (_React$Component) { clearInterval(interval); var testedColor = void 0; var arraywidth = new Map(); - for (var _i2 = 0; _i2 < _this2.progressContainer.current.childNodes.length; _i2++) { var child = _this2.progressContainer.current.childNodes[_i2]; - //When the child has the same bkcolor as last element, increase width if (child.style.backgroundColor == testedColor) { arraywidth.set(testedColor, arraywidth.get(testedColor) + Math.round(parseFloat(child.style.width) * 10) / 10); @@ -123,16 +111,16 @@ var Progressbar = function (_React$Component) { } testedColor = child.style.backgroundColor; } - _this2.progressContainer.current.innerHTML = ''; arraywidth.forEach(function (size, color) { var node = document.createElement('div'); node.classList.add('positionedElement'); node.style.backgroundColor = color; + node.style.setProperty('width', size + 1 + '%', 'important'); + node.style.setProperty('transform', 'translate(0)', 'important'); _this2.progressContainer.current.appendChild(node); - }); } }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); @@ -157,8 +145,6 @@ var Progressbar = function (_React$Component) { i--; }, this.props.timeToRefresh != null ? this.props.timeToRefresh : 10); } - - }]); return Progressbar; diff --git a/src/ProgressView.js b/src/ProgressView.js index c581edae..52db6ca5 100644 --- a/src/ProgressView.js +++ b/src/ProgressView.js @@ -1,58 +1,6 @@ -class TableRow extends React.Component { - constructor(props) { - super(props); - this.state = { - operationnalCompetences: [] - } - } - - render() { - return ( - - - {this.props.coursePlanRows.operationnalCompetences.forEach((operationalCompetence) => { - this.state.operationnalCompetences.push(); - - })} - - {this.state.operationnalCompetences} - - - ) - - } - -} -class Frame extends React.Component{ - - constructor(props) { - super(props); - - } - componentDidMount(){ - - - } - render(){ - this.list=[]; - Object.values(this.props.operationnalCompetences).forEach((opcomp)=>{ - }); - return ( -
    - {this.list} -
    - ) - } -} - class ProgressView extends React.Component { + coursePlanProgress=[]; + accordion=[]; openMenuListener; closeMenuListener; tableRows = []; @@ -80,7 +28,22 @@ class ProgressView extends React.Component { } this.hideMenu=this.hideMenu.bind(this); this.showMenu=this.showMenu.bind(this); + //init courseplanProgress On construct + Object.values(props.coursePlan.competenceDomains).forEach((competenceDomain) => { + let coursePlanProgress = new Object(); + coursePlanProgress.competenceDomain = competenceDomain; + coursePlanProgress.competenceDomainSymbol = competenceDomain.symbol; + coursePlanProgress.competenceDomainName = competenceDomain.name; + Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence) => { + let opComp = new Object(); + opComp.operationnalCompetence = operationalCompetence; + opComp.symbol = operationalCompetence.symbol; + opComp.name = operationalCompetence.name; + coursePlanProgress.operationnalCompetences !== undefined ? coursePlanProgress.operationnalCompetences.push(opComp) : coursePlanProgress.operationnalCompetences = [opComp]; + }) + this.coursePlanProgress.push(coursePlanProgress); + }) } componentDidMount() { @@ -103,7 +66,7 @@ class ProgressView extends React.Component { this.competenceDomains=[]; let intermediateList=[]; this.tableRows=[]; - if (this.state.mobiledisplay) { + if (this.state.mobiledisplay &&!this.props.integrated) { return (
    @@ -135,7 +98,7 @@ class ProgressView extends React.Component {
    ); - } else { + } else if(!this.state.mobiledisplay &&!this.props.integrated) { return (
    @@ -181,6 +144,24 @@ class ProgressView extends React.Component {
    + ); + } + //when integrated props is true + else{ + const accordions=[] + return ( +
    + {this.coursePlanProgress.map((progress)=>{ + accordions.push( + //here comes tag to modify display + + ) + })} + {accordions} +
    + + + ); } } @@ -203,6 +184,7 @@ class ProgressView extends React.Component { } + class CompetenceDomainView extends React.Component { competenceDomainProgress; @@ -227,8 +209,8 @@ class CompetenceDomainView extends React.Component { ) } else - return ( - + return ( + {this.props.competenceDomainSymbol}
    - ); + ); } } - class OperationalCompetenceView extends React.Component { operationalCompetenceProgress; @@ -256,6 +237,7 @@ class OperationalCompetenceView extends React.Component { } render() { + console.log(this.props.operationalCompetenceDatas) if (this.props.mobiledisplay) { return (
    @@ -287,5 +269,130 @@ class OperationalCompetenceView extends React.Component { } } } +class TableRow extends React.Component { + constructor(props) { + super(props); + this.state = { + operationnalCompetences: [] + } + } + + render() { + return ( + + + {this.props.coursePlanRows.operationnalCompetences.forEach((operationalCompetence) => { + this.state.operationnalCompetences.push(); + + })} + + {this.state.operationnalCompetences} + + + ) + + } + +} +class CompetenceDomainAccordion extends React.Component { + constructor(props) { + super(props); + } + render(){ + return( +
    +
    + + + {this.props.competenceDomain.symbol} + +

    {this.props.competenceDomain.name} +

    +
    + + + +
    + + + ) + + +} +} +class OperationalCompetenceAccordion extends React.Component{ + constructor(props) { + super(props); + } + render(){ + return( +
    + + {this.props.operationnalCompetence.symbol} + +

    + {this.props.operationnalCompetence.name} + +

    + +
    + ); + } +} +class Accordion extends React.Component{ + operationnalCompetencesAccordion=[]; + constructor(props) { + super(props); + this.openAccordion=this.openAccordion.bind(this); + props.datas.operationnalCompetences.forEach((operationalCompetence)=>{ + this.operationnalCompetencesAccordion.push(); + }) + + } + openAccordion(event){ + event=event.currentTarget; + if (event.classList.contains('bi-arrow-down-square')){ + event.classList.remove('bi-arrow-down-square'); + event.classList.add('bi-arrow-up-square') + } + else{ + event.classList.remove('bi-arrow-up-square') + event.classList.add('bi-arrow-down-square'); + } + + event.parentElement.nextElementSibling.classList.toggle('ac-hidden'); + + } + render(){ + return( +
    +
    Domaine de competence
    + +
    +
    Competences operationnelles + this.openAccordion(e)}> +
    +
    + {this.operationnalCompetencesAccordion} +
    +
    +
    + ); + } +} + diff --git a/src/progressbar.js b/src/progressbar.js index d8d66477..9e333f76 100644 --- a/src/progressbar.js +++ b/src/progressbar.js @@ -13,10 +13,8 @@ class Progressbar extends React.Component{ } render(){ return ( -
    -
    ) } /** From c1777395a619db8d8c709af98a2e98eaf23b6a7e Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 25 Nov 2021 10:49:25 +0100 Subject: [PATCH 130/172] rework course plan details accordions --- public/css/progressview_accordion.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/css/progressview_accordion.css b/public/css/progressview_accordion.css index 3e02c949..12b6f3de 100644 --- a/public/css/progressview_accordion.css +++ b/public/css/progressview_accordion.css @@ -3,8 +3,7 @@ min-width: 300px; flex-direction: column; margin-bottom: 10px; - max-width: 360px; - width: 50%; + width: 80%; } .accordionContainer > div > .compdomContainer{ @@ -38,6 +37,9 @@ .accordionContainer > .opcompContainerList{ width: 100%; } +.accordionContainer > .opcompContainerList > .opcompList > .opcompContainer p{ + width: 80%; +} .accordionContainer > .opcompContainerList > .opcompContainerHeader > .openLogo{ transition: color 200ms; font-size: 1.5rem; From a5c2bcd382eb08aeda3581d0ff08ea5baedcbfd0 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 25 Nov 2021 13:19:55 +0100 Subject: [PATCH 131/172] rework course plan details accordions to redirect and filter --- orif/common/Views/header.php | 4 +-- orif/plafor/Controllers/Apprentice.php | 38 +++++++++++++++++++++----- orif/plafor/Views/apprentice/view.php | 2 +- public/css/progressview_accordion.css | 1 - public/jsComponents/ProgressView.js | 10 +++---- src/ProgressView.js | 10 +++---- 6 files changed, 44 insertions(+), 21 deletions(-) diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index 51a46348..bf693716 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -94,7 +94,7 @@ function initProgress() { }) }); } - async function displayDetails(coursePlan,integrated=false){ + async function displayDetails(coursePlan,userCourse=null,integrated=false){ const detailsPanel=document.createElement('div'); detailsPanel.id='details'; if(integrated&&coursePlan==null){ @@ -107,7 +107,7 @@ function initProgress() { else{ document.body.append(detailsPanel); } - ReactDOM.render(,integrated===false?detailsPanel:document.getElementById('detailsArray')); + ReactDOM.render("} userCourseId={userCourse.id}>,integrated===false?detailsPanel:document.getElementById('detailsArray')); } diff --git a/orif/plafor/Controllers/Apprentice.php b/orif/plafor/Controllers/Apprentice.php index 4a6d9601..8c4eec39 100644 --- a/orif/plafor/Controllers/Apprentice.php +++ b/orif/plafor/Controllers/Apprentice.php @@ -526,6 +526,8 @@ public function view_objective($objective_id = null) * @return void */ public function view_user_course($id_user_course = null){ + $objectives = null; + $acquisition_levels = null; $user_course = UserCourseModel::getInstance()->find($id_user_course); if($user_course == null){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); @@ -538,17 +540,39 @@ public function view_user_course($id_user_course = null){ $user_course_status = UserCourseModel::getUserCourseStatus($user_course['fk_status']); $course_plan = UserCourseModel::getCoursePlan($user_course['fk_course_plan']); $trainers_apprentice = TrainerApprenticeModel::getInstance()->where('fk_apprentice',$apprentice['id'])->findAll(); - $acquisition_status = UserCourseModel::getAcquisitionStatus($id_user_course); if($user_course == null){ return redirect()->to(base_url('plafor/apprentice/list_apprentice')); } - $objectives=[]; - foreach ($acquisition_status as $acquisitionstatus){ - $objectives[$acquisitionstatus['fk_objective']]=AcquisitionStatusModel::getObjective($acquisitionstatus['fk_objective']); + //if url parameters contains filter operationalCompetenceId + if ($this->request->getGet('operationalCompetenceId')!=null){ + $objectives=[]; + $acquisition_status=[]; + foreach(CoursePlanModel::getCompetenceDomains(UserCourseModel::getInstance()->find($id_user_course)['fk_course_plan'])as $competenceDomain) { + foreach (CompetenceDomainModel::getOperationalCompetences($competenceDomain['id']) as $operationalCompetence) { + if ($operationalCompetence['id'] == $this->request->getGet('operationalCompetenceId')) { + foreach (OperationalCompetenceModel::getObjectives($operationalCompetence['id']) as $objective){ + $objectives[$objective['id']]=$objective; + } + } + } + } + foreach (UserCourseModel::getAcquisitionStatus($id_user_course) as $acquisition_statuse){ + foreach ($objectives as $objective){ + if ($acquisition_statuse['fk_objective'] ==$objective['id']){ + $acquisition_status[]=$acquisition_statuse; + } + } + } + } + else { + $acquisition_status = UserCourseModel::getAcquisitionStatus($id_user_course); + + foreach ($acquisition_status as $acquisitionstatus) { + $objectives[$acquisitionstatus['fk_objective']] = AcquisitionStatusModel::getObjective($acquisitionstatus['fk_objective']); + } } - $acquisition_levels=[]; - foreach (AcquisitionLevelModel::getInstance()->findAll() as $acquisitionLevel){ - $acquisition_levels[$acquisitionLevel['id']]=$acquisitionLevel; + foreach (AcquisitionLevelModel::getInstance()->findAll() as $acquisitionLevel) { + $acquisition_levels[$acquisitionLevel['id']] = $acquisitionLevel; } $output = array( 'title'=>lang('plafor_lang.title_user_course_view'), diff --git a/orif/plafor/Views/apprentice/view.php b/orif/plafor/Views/apprentice/view.php index eda34415..2eb808dd 100644 --- a/orif/plafor/Views/apprentice/view.php +++ b/orif/plafor/Views/apprentice/view.php @@ -105,7 +105,7 @@
    \ No newline at end of file diff --git a/public/css/progressview_accordion.css b/public/css/progressview_accordion.css index 12b6f3de..ee9cb274 100644 --- a/public/css/progressview_accordion.css +++ b/public/css/progressview_accordion.css @@ -9,7 +9,6 @@ .accordionContainer > div > .compdomContainer{ display: flex; flex-direction: row; - min-height: 140px; } .accordionContainer > div > .compdomContainer > p{ padding: .75rem; diff --git a/public/jsComponents/ProgressView.js b/public/jsComponents/ProgressView.js index c5fce420..d5e4717a 100644 --- a/public/jsComponents/ProgressView.js +++ b/public/jsComponents/ProgressView.js @@ -105,7 +105,7 @@ var ProgressView = function (_React$Component) { } })); intermediateList = []; Object.values(competenceDomain.operationalCompetences).forEach(function (operationalCompetence) { - intermediateList.push(React.createElement(OperationalCompetenceView, { key: operationalCompetence.id, operationalCompetenceSymbol: operationalCompetence.symbol, operationalCompetenceName: operationalCompetence.name, operationalCompetenceDatas: operationalCompetence, mobiledisplay: true })); + intermediateList.push(React.createElement(OperationalCompetenceView, { key: operationalCompetence.id, operationalCompetenceSymbol: operationalCompetence.symbol, operationalCompetenceName: operationalCompetence.name, operationalCompetenceDatas: operationalCompetence, mobiledisplay: true, baseUrl: _this2.props.baseUrl })); }); _this2.operationalCompetences[competenceDomain.id] = intermediateList; }), @@ -189,7 +189,7 @@ var ProgressView = function (_React$Component) { this.coursePlanProgress.map(function (progress) { accordions.push( //here comes tag to modify display - React.createElement(Accordion, { datas: progress })); + React.createElement(Accordion, { datas: progress, baseUrl: _this2.props.baseUrl, userCourseId: _this2.props.userCourseId })); }), accordions ); @@ -458,8 +458,8 @@ var OperationalCompetenceAccordion = function (_React$Component6) { 'div', { className: 'opcompContainer' }, React.createElement( - 'span', - { className: 'opcompSymbol text-secondary' }, + 'a', + { className: 'opcompSymbol text-secondary', href: this.props.baseUrl + ('/' + this.props.userCourseId + '?operationalCompetenceId=' + this.props.operationnalCompetence.operationnalCompetence.id) }, this.props.operationnalCompetence.symbol ), React.createElement( @@ -490,7 +490,7 @@ var Accordion = function (_React$Component7) { _this10.openAccordion = _this10.openAccordion.bind(_this10); props.datas.operationnalCompetences.forEach(function (operationalCompetence) { - _this10.operationnalCompetencesAccordion.push(React.createElement(OperationalCompetenceAccordion, { operationnalCompetence: operationalCompetence })); + _this10.operationnalCompetencesAccordion.push(React.createElement(OperationalCompetenceAccordion, { operationnalCompetence: operationalCompetence, baseUrl: _this10.props.baseUrl, userCourseId: _this10.props.userCourseId })); }); return _this10; diff --git a/src/ProgressView.js b/src/ProgressView.js index 52db6ca5..c50c33f7 100644 --- a/src/ProgressView.js +++ b/src/ProgressView.js @@ -80,7 +80,7 @@ class ProgressView extends React.Component { }/>); intermediateList=[]; Object.values(competenceDomain.operationalCompetences).forEach((operationalCompetence)=>{ - intermediateList.push() + intermediateList.push() }) this.operationalCompetences[competenceDomain.id]=intermediateList; })} @@ -154,7 +154,7 @@ class ProgressView extends React.Component { {this.coursePlanProgress.map((progress)=>{ accordions.push( //here comes tag to modify display - + ) })} {accordions} @@ -339,9 +339,9 @@ class OperationalCompetenceAccordion extends React.Component{ render(){ return(
    - + {this.props.operationnalCompetence.symbol} - +

    {this.props.operationnalCompetence.name} { - this.operationnalCompetencesAccordion.push(); + this.operationnalCompetencesAccordion.push(); }) } From e22f8c217700497e444948cac3d2b958f36b16e0 Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 25 Nov 2021 13:32:02 +0100 Subject: [PATCH 132/172] rework course plan details accordions to redirect and filter --- orif/common/Views/header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orif/common/Views/header.php b/orif/common/Views/header.php index bf693716..98a6a72c 100644 --- a/orif/common/Views/header.php +++ b/orif/common/Views/header.php @@ -107,7 +107,7 @@ function initProgress() { else{ document.body.append(detailsPanel); } - ReactDOM.render("} userCourseId={userCourse.id}>,integrated===false?detailsPanel:document.getElementById('detailsArray')); + ReactDOM.render("} userCourseId={userCourse!=null?userCourse.id:null}>,integrated===false?detailsPanel:document.getElementById('detailsArray')); } From 17eb1a8edcbb1a74de7685070efcfdc03dbfcfbb Mon Sep 17 00:00:00 2001 From: HeMa Date: Thu, 25 Nov 2021 14:29:33 +0100 Subject: [PATCH 133/172] Update to CI 4.1.5 --- app/Config/App.php | 890 +-- app/Config/Autoload.php | 113 +- app/Config/CURLRequest.php | 22 + app/Config/Cache.php | 287 +- app/Config/ContentSecurityPolicy.php | 290 +- app/Config/Cookie.php | 119 + app/Config/Events.php | 48 +- app/Config/Exceptions.php | 80 +- app/Config/Feature.php | 27 + app/Config/Generators.php | 61 +- app/Config/Kint.php | 72 +- app/Config/Logger.php | 259 +- app/Config/Mimes.php | 1015 ++- app/Config/Modules.php | 84 +- app/Config/Publisher.php | 28 + app/Config/Security.php | 168 +- app/Controllers/BaseController.php | 24 +- app/Views/errors/html/debug.css | 64 +- app/Views/errors/html/error_404.php | 126 +- app/Views/errors/html/error_exception.php | 88 +- composer.json | 90 +- env | 49 +- public/.htaccess | 18 +- public/index.php | 11 +- spark | 29 +- system/API/ResponseTrait.php | 726 +- system/Autoloader/Autoloader.php | 600 +- system/Autoloader/FileLocator.php | 807 +-- system/BaseModel.php | 3458 +++++---- system/CLI/BaseCommand.php | 449 +- system/CLI/CLI.php | 2105 +++--- system/CLI/CommandRunner.php | 120 +- system/CLI/Commands.php | 358 +- system/CLI/Console.php | 99 +- system/CLI/Exceptions/CLIException.php | 31 +- system/CLI/GeneratorTrait.php | 682 +- system/Cache/CacheFactory.php | 112 +- system/Cache/CacheInterface.php | 199 +- system/Cache/Exceptions/CacheException.php | 83 +- .../Cache/Exceptions/ExceptionInterface.php | 8 +- system/Cache/Handlers/BaseHandler.php | 112 +- system/Cache/Handlers/DummyHandler.php | 252 +- system/Cache/Handlers/FileHandler.php | 913 ++- system/Cache/Handlers/MemcachedHandler.php | 594 +- system/Cache/Handlers/PredisHandler.php | 464 +- system/Cache/Handlers/RedisHandler.php | 547 +- system/Cache/Handlers/WincacheHandler.php | 342 +- system/CodeIgniter.php | 2068 +++--- system/Commands/Cache/ClearCache.php | 116 +- system/Commands/Cache/InfoCache.php | 118 +- system/Commands/Database/CreateDatabase.php | 274 +- system/Commands/Database/CreateMigration.php | 186 - system/Commands/Database/Migrate.php | 175 +- system/Commands/Database/MigrateRefresh.php | 122 +- system/Commands/Database/MigrateRollback.php | 187 +- system/Commands/Database/MigrateStatus.php | 299 +- system/Commands/Database/Seed.php | 112 +- system/Commands/Encryption/GenerateKey.php | 371 +- .../Commands/Generators/CommandGenerator.php | 206 +- .../Commands/Generators/ConfigGenerator.php | 142 +- .../Generators/ControllerGenerator.php | 235 +- .../Commands/Generators/EntityGenerator.php | 116 +- .../Commands/Generators/FilterGenerator.php | 116 +- system/Commands/Generators/MigrateCreate.php | 121 +- .../Generators/MigrationGenerator.php | 212 +- system/Commands/Generators/ModelGenerator.php | 231 +- .../Commands/Generators/ScaffoldGenerator.php | 210 +- .../Commands/Generators/SeederGenerator.php | 115 +- .../Generators/SessionMigrationGenerator.php | 185 +- .../Generators/ValidationGenerator.php | 116 +- .../Commands/Generators/Views/command.tpl.php | 100 +- .../Commands/Generators/Views/config.tpl.php | 2 +- .../Generators/Views/controller.tpl.php | 328 +- .../Commands/Generators/Views/entity.tpl.php | 12 +- .../Commands/Generators/Views/filter.tpl.php | 70 +- .../Generators/Views/migration.tpl.php | 64 +- .../Commands/Generators/Views/model.tpl.php | 60 +- .../Commands/Generators/Views/seeder.tpl.php | 8 +- .../Generators/Views/validation.tpl.php | 8 +- system/Commands/Help.php | 117 +- .../Commands/Housekeeping/ClearDebugbar.php | 94 +- system/Commands/Housekeeping/ClearLogs.php | 128 +- system/Commands/ListCommands.php | 238 +- system/Commands/Server/Serve.php | 200 +- system/Commands/Server/rewrite.php | 16 +- system/Commands/Sessions/CreateMigration.php | 136 - .../Commands/Sessions/Views/migration.tpl.php | 52 - system/Commands/Utilities/Environment.php | 155 + system/Commands/Utilities/Namespaces.php | 128 +- system/Commands/Utilities/Publish.php | 104 + system/Commands/Utilities/Routes.php | 164 +- system/Common.php | 2232 +++--- system/ComposerScripts.php | 338 +- system/Config/AutoloadConfig.php | 202 +- system/Config/BaseConfig.php | 366 +- system/Config/BaseService.php | 626 +- system/Config/Config.php | 67 +- system/Config/DotEnv.php | 490 +- system/Config/Factories.php | 628 +- system/Config/Factory.php | 50 +- system/Config/ForeignCharacters.php | 194 +- system/Config/Publisher.php | 42 + system/Config/Routes.php | 16 +- system/Config/Services.php | 1377 ++-- system/Config/View.php | 158 +- system/Controller.php | 297 +- system/Cookie/CloneableCookieInterface.php | 107 + system/Cookie/Cookie.php | 783 +++ system/Cookie/CookieInterface.php | 168 + system/Cookie/CookieStore.php | 250 + system/Cookie/Exceptions/CookieException.php | 127 + system/Database/BaseBuilder.php | 6178 +++++++---------- system/Database/BaseConnection.php | 3411 +++++---- system/Database/BasePreparedQuery.php | 397 +- system/Database/BaseResult.php | 1112 ++- system/Database/BaseUtils.php | 686 +- system/Database/Config.php | 276 +- system/Database/ConnectionInterface.php | 318 +- system/Database/Database.php | 283 +- system/Database/Exceptions/DataException.php | 130 +- .../Database/Exceptions/DatabaseException.php | 18 +- .../Exceptions/ExceptionInterface.php | 6 +- system/Database/Forge.php | 2380 +++---- system/Database/Migration.php | 120 +- system/Database/MigrationRunner.php | 1878 +++-- system/Database/ModelFactory.php | 63 +- system/Database/MySQLi/Builder.php | 73 +- system/Database/MySQLi/Connection.php | 1244 ++-- system/Database/MySQLi/Forge.php | 454 +- system/Database/MySQLi/PreparedQuery.php | 133 +- system/Database/MySQLi/Result.php | 319 +- system/Database/MySQLi/Utils.php | 58 +- system/Database/Postgre/Builder.php | 680 +- system/Database/Postgre/Connection.php | 1060 ++- system/Database/Postgre/Forge.php | 388 +- system/Database/Postgre/PreparedQuery.php | 191 +- system/Database/Postgre/Result.php | 250 +- system/Database/Postgre/Utils.php | 58 +- system/Database/PreparedQueryInterface.php | 99 +- system/Database/Query.php | 937 ++- system/Database/QueryInterface.php | 177 +- system/Database/ResultInterface.php | 367 +- system/Database/SQLSRV/Builder.php | 1235 ++-- system/Database/SQLSRV/Connection.php | 1072 ++- system/Database/SQLSRV/Forge.php | 779 ++- system/Database/SQLSRV/PreparedQuery.php | 200 +- system/Database/SQLSRV/Result.php | 334 +- system/Database/SQLSRV/Utils.php | 64 +- system/Database/SQLite3/Builder.php | 115 +- system/Database/SQLite3/Connection.php | 871 +-- system/Database/SQLite3/Forge.php | 515 +- system/Database/SQLite3/PreparedQuery.php | 141 +- system/Database/SQLite3/Result.php | 293 +- system/Database/SQLite3/Table.php | 730 +- system/Database/SQLite3/Utils.php | 42 +- system/Database/Seeder.php | 367 +- system/Debug/Exceptions.php | 865 ++- system/Debug/Iterator.php | 207 +- system/Debug/Timer.php | 239 +- system/Debug/Toolbar.php | 925 +-- .../Toolbar/Collectors/BaseCollector.php | 483 +- system/Debug/Toolbar/Collectors/Config.php | 42 +- system/Debug/Toolbar/Collectors/Database.php | 371 +- system/Debug/Toolbar/Collectors/Events.php | 266 +- system/Debug/Toolbar/Collectors/Files.php | 192 +- system/Debug/Toolbar/Collectors/History.php | 260 +- system/Debug/Toolbar/Collectors/Logs.php | 167 +- system/Debug/Toolbar/Collectors/Routes.php | 288 +- system/Debug/Toolbar/Collectors/Timers.php | 98 +- system/Debug/Toolbar/Collectors/Views.php | 273 +- system/Debug/Toolbar/Views/_database.tpl | 2 +- system/Debug/Toolbar/Views/toolbar.css | 67 +- system/Debug/Toolbar/Views/toolbar.js | 47 +- system/Debug/Toolbar/Views/toolbar.tpl.php | 18 +- system/Debug/Toolbar/Views/toolbarloader.js | 87 + .../Debug/Toolbar/Views/toolbarloader.js.php | 90 - system/Email/Email.php | 4613 ++++++------ system/Encryption/EncrypterInterface.php | 50 +- system/Encryption/Encryption.php | 320 +- .../Exceptions/EncryptionException.php | 122 +- system/Encryption/Handlers/BaseHandler.php | 121 +- system/Encryption/Handlers/OpenSSLHandler.php | 207 +- system/Encryption/Handlers/SodiumHandler.php | 246 +- system/Entity.php | 641 +- system/Entity/Cast/ArrayCast.php | 38 + system/Entity/Cast/BaseCast.php | 44 + system/Entity/Cast/BooleanCast.php | 26 + system/Entity/Cast/CSVCast.php | 34 + system/Entity/Cast/CastInterface.php | 38 + system/Entity/Cast/DatetimeCast.php | 48 + system/Entity/Cast/FloatCast.php | 26 + system/Entity/Cast/IntegerCast.php | 26 + system/Entity/Cast/JsonCast.php | 65 + system/Entity/Cast/ObjectCast.php | 26 + system/Entity/Cast/StringCast.php | 26 + system/Entity/Cast/TimestampCast.php | 34 + system/Entity/Cast/URICast.php | 28 + system/Entity/Entity.php | 535 ++ system/Entity/Exceptions/CastException.php | 78 + system/Events/Events.php | 540 +- system/Exceptions/AlertError.php | 6 +- system/Exceptions/CastException.php | 68 +- system/Exceptions/ConfigException.php | 28 +- system/Exceptions/CriticalError.php | 6 +- system/Exceptions/DebugTraceableTrait.php | 41 +- system/Exceptions/DownloadException.php | 58 +- system/Exceptions/EmergencyError.php | 6 +- system/Exceptions/ExceptionInterface.php | 7 +- system/Exceptions/FrameworkException.php | 79 +- system/Exceptions/ModelException.php | 23 +- system/Exceptions/PageNotFoundException.php | 79 +- system/Exceptions/TestException.php | 25 + system/Files/Exceptions/FileException.php | 36 +- .../Exceptions/FileNotFoundException.php | 16 +- system/Files/File.php | 364 +- system/Files/FileCollection.php | 367 + system/Filters/CSRF.php | 100 +- system/Filters/DebugToolbar.php | 55 +- system/Filters/Exceptions/FilterException.php | 48 +- system/Filters/FilterInterface.php | 65 +- system/Filters/Filters.php | 1084 ++- system/Filters/Honeypot.php | 60 +- system/Format/Exceptions/FormatException.php | 98 +- system/Format/Format.php | 99 +- system/Format/FormatterInterface.php | 22 +- system/Format/JSONFormatter.php | 57 +- system/Format/XMLFormatter.php | 148 +- system/HTTP/CLIRequest.php | 381 +- system/HTTP/CURLRequest.php | 1439 ++-- system/HTTP/ContentSecurityPolicy.php | 1470 ++-- system/HTTP/DownloadResponse.php | 679 +- system/HTTP/Exceptions/HTTPException.php | 428 +- system/HTTP/Files/FileCollection.php | 500 +- system/HTTP/Files/UploadedFile.php | 671 +- system/HTTP/Files/UploadedFileInterface.php | 269 +- system/HTTP/Header.php | 368 +- system/HTTP/IncomingRequest.php | 1497 ++-- system/HTTP/Message.php | 247 +- system/HTTP/MessageInterface.php | 159 +- system/HTTP/MessageTrait.php | 464 +- system/HTTP/Negotiate.php | 735 +- system/HTTP/RedirectResponse.php | 280 +- system/HTTP/Request.php | 228 +- system/HTTP/RequestInterface.php | 99 +- system/HTTP/RequestTrait.php | 667 +- system/HTTP/Response.php | 415 +- system/HTTP/ResponseInterface.php | 733 +- system/HTTP/ResponseTrait.php | 1573 ++--- system/HTTP/URI.php | 2257 +++--- system/HTTP/UserAgent.php | 810 +-- system/Helpers/array_helper.php | 407 +- system/Helpers/cookie_helper.php | 172 +- system/Helpers/date_helper.php | 105 +- system/Helpers/filesystem_helper.php | 870 ++- system/Helpers/form_helper.php | 1569 ++--- system/Helpers/html_helper.php | 1202 ++-- system/Helpers/inflector_helper.php | 648 +- system/Helpers/number_helper.php | 492 +- system/Helpers/security_helper.php | 90 +- system/Helpers/test_helper.php | 88 +- system/Helpers/text_helper.php | 1434 ++-- system/Helpers/url_helper.php | 1149 ++- system/Helpers/xml_helper.php | 109 +- .../Honeypot/Exceptions/HoneypotException.php | 38 +- system/Honeypot/Honeypot.php | 159 +- system/I18n/Exceptions/I18nException.php | 161 +- system/I18n/Time.php | 2504 ++++--- system/I18n/TimeDifference.php | 604 +- system/Images/Exceptions/ImageException.php | 86 +- system/Images/Handlers/BaseHandler.php | 1632 ++--- system/Images/Handlers/GDHandler.php | 1064 ++- system/Images/Handlers/ImageMagickHandler.php | 953 ++- system/Images/Image.php | 241 +- system/Images/ImageHandlerInterface.php | 289 +- system/Language/Language.php | 548 +- system/Language/en/CLI.php | 63 +- system/Language/en/Cache.php | 14 +- system/Language/en/Cast.php | 21 +- system/Language/en/Cookie.php | 24 + system/Language/en/Core.php | 17 +- system/Language/en/Database.php | 38 +- system/Language/en/Email.php | 44 +- system/Language/en/Encryption.php | 18 +- system/Language/en/Entity.php | 19 - system/Language/en/Fabricator.php | 12 +- system/Language/en/Files.php | 12 +- system/Language/en/Filters.php | 10 +- system/Language/en/Format.php | 14 +- system/Language/en/HTTP.php | 110 +- system/Language/en/Images.php | 46 +- system/Language/en/Language.php | 19 - system/Language/en/Log.php | 9 +- system/Language/en/Migrations.php | 86 +- system/Language/en/Number.php | 28 +- system/Language/en/Pager.php | 24 +- system/Language/en/Publisher.php | 22 + system/Language/en/RESTful.php | 8 +- system/Language/en/Redirect.php | 19 - system/Language/en/Router.php | 10 +- system/Language/en/Security.php | 12 +- system/Language/en/Session.php | 20 +- system/Language/en/Test.php | 15 + system/Language/en/Time.php | 44 +- system/Language/en/Validation.php | 116 +- system/Language/en/View.php | 18 +- system/Log/Exceptions/LogException.php | 19 +- system/Log/Handlers/BaseHandler.php | 118 +- system/Log/Handlers/ChromeLoggerHandler.php | 300 +- system/Log/Handlers/ErrorlogHandler.php | 84 + system/Log/Handlers/FileHandler.php | 222 +- system/Log/Handlers/HandlerInterface.php | 66 +- system/Log/Logger.php | 883 ++- system/Model.php | 1661 ++--- system/Modules/Modules.php | 69 +- system/Pager/Exceptions/PagerException.php | 22 +- system/Pager/Pager.php | 934 ++- system/Pager/PagerInterface.php | 282 +- system/Pager/PagerRenderer.php | 790 +-- system/Pager/Views/default_head.php | 18 +- .../Exceptions/PublisherException.php | 49 + system/Publisher/Publisher.php | 440 ++ system/RESTful/BaseResource.php | 103 +- system/RESTful/ResourceController.php | 173 +- system/RESTful/ResourcePresenter.php | 174 +- .../Router/Exceptions/RedirectException.php | 18 +- system/Router/Exceptions/RouterException.php | 85 +- system/Router/RouteCollection.php | 2894 ++++---- system/Router/RouteCollectionInterface.php | 384 +- system/Router/Router.php | 1350 ++-- system/Router/RouterInterface.php | 113 +- .../Security/Exceptions/SecurityException.php | 29 +- system/Security/Security.php | 979 +-- system/Security/SecurityInterface.php | 118 +- .../Session/Exceptions/SessionException.php | 69 +- system/Session/Handlers/ArrayHandler.php | 177 +- system/Session/Handlers/BaseHandler.php | 316 +- system/Session/Handlers/DatabaseHandler.php | 688 +- system/Session/Handlers/FileHandler.php | 705 +- system/Session/Handlers/MemcachedHandler.php | 642 +- system/Session/Handlers/RedisHandler.php | 691 +- system/Session/Session.php | 1940 +++--- system/Session/SessionInterface.php | 374 +- system/Test/CIDatabaseTestCase.php | 451 +- system/Test/CIUnitTestCase.php | 853 ++- system/Test/Constraints/SeeInDatabase.php | 118 + system/Test/ControllerResponse.php | 265 +- system/Test/ControllerTestTrait.php | 297 + system/Test/ControllerTester.php | 516 +- system/Test/DOMParser.php | 576 +- system/Test/DatabaseTestTrait.php | 326 + system/Test/Fabricator.php | 1113 ++- system/Test/FeatureResponse.php | 416 +- system/Test/FeatureTestCase.php | 432 +- system/Test/FeatureTestTrait.php | 759 +- system/Test/FilterTestTrait.php | 270 + system/Test/Filters/CITestStreamFilter.php | 66 +- system/Test/Interfaces/FabricatorModel.php | 103 +- system/Test/Mock/MockAppConfig.php | 65 +- system/Test/Mock/MockAutoload.php | 21 +- system/Test/Mock/MockBuilder.php | 11 +- system/Test/Mock/MockCLIConfig.php | 57 +- system/Test/Mock/MockCURLRequest.php | 70 +- system/Test/Mock/MockCache.php | 504 +- system/Test/Mock/MockCodeIgniter.php | 14 +- system/Test/Mock/MockCommon.php | 45 +- system/Test/Mock/MockConnection.php | 508 +- system/Test/Mock/MockEmail.php | 50 +- system/Test/Mock/MockEvents.php | 38 +- system/Test/Mock/MockFileLogger.php | 28 +- system/Test/Mock/MockIncomingRequest.php | 19 +- system/Test/Mock/MockLanguage.php | 96 +- system/Test/Mock/MockLogger.php | 175 +- system/Test/Mock/MockQuery.php | 6 +- system/Test/Mock/MockResourceController.php | 30 +- system/Test/Mock/MockResourcePresenter.php | 32 +- system/Test/Mock/MockResponse.php | 38 +- system/Test/Mock/MockResult.php | 186 +- system/Test/Mock/MockSecurity.php | 17 +- system/Test/Mock/MockSecurityConfig.php | 34 +- system/Test/Mock/MockServices.php | 42 +- system/Test/Mock/MockSession.php | 143 +- system/Test/Mock/MockTable.php | 23 +- system/Test/ReflectionHelper.php | 142 +- system/Test/TestLogger.php | 123 +- system/Test/TestResponse.php | 496 ++ system/Test/bootstrap.php | 59 +- system/ThirdParty/Escaper/Escaper.php | 121 +- .../Escaper/Exception/ExceptionInterface.php | 6 +- .../Exception/InvalidArgumentException.php | 6 +- .../Escaper/Exception/RuntimeException.php | 6 +- system/ThirdParty/PSR/Log/AbstractLogger.php | 72 +- system/ThirdParty/PSR/Log/LogLevel.php | 16 +- .../PSR/Log/LoggerAwareInterface.php | 7 +- .../ThirdParty/PSR/Log/LoggerAwareTrait.php | 8 +- system/ThirdParty/PSR/Log/LoggerInterface.php | 93 +- system/ThirdParty/PSR/Log/LoggerTrait.php | 71 +- system/ThirdParty/PSR/Log/NullLogger.php | 13 +- system/Throttle/Throttler.php | 298 +- system/Throttle/ThrottlerInterface.php | 58 +- system/Typography/Typography.php | 681 +- system/Validation/CreditCardRules.php | 510 +- .../Exceptions/ValidationException.php | 54 +- system/Validation/FileRules.php | 537 +- system/Validation/FormatRules.php | 676 +- system/Validation/Rules.php | 748 +- system/Validation/Validation.php | 1536 ++-- system/Validation/ValidationInterface.php | 187 +- system/View/Cell.php | 380 +- system/View/Exceptions/ViewException.php | 64 +- system/View/Filters.php | 539 +- system/View/Parser.php | 1491 ++-- system/View/Plugins.php | 211 +- system/View/RendererInterface.php | 115 +- system/View/Table.php | 994 ++- system/View/View.php | 909 ++- system/bootstrap.php | 109 +- 416 files changed, 72730 insertions(+), 79617 deletions(-) create mode 100644 app/Config/CURLRequest.php create mode 100644 app/Config/Cookie.php create mode 100644 app/Config/Feature.php create mode 100644 app/Config/Publisher.php delete mode 100644 system/Commands/Database/CreateMigration.php delete mode 100644 system/Commands/Sessions/CreateMigration.php delete mode 100644 system/Commands/Sessions/Views/migration.tpl.php create mode 100644 system/Commands/Utilities/Environment.php create mode 100644 system/Commands/Utilities/Publish.php create mode 100644 system/Config/Publisher.php create mode 100644 system/Cookie/CloneableCookieInterface.php create mode 100644 system/Cookie/Cookie.php create mode 100644 system/Cookie/CookieInterface.php create mode 100644 system/Cookie/CookieStore.php create mode 100644 system/Cookie/Exceptions/CookieException.php create mode 100644 system/Debug/Toolbar/Views/toolbarloader.js delete mode 100644 system/Debug/Toolbar/Views/toolbarloader.js.php create mode 100644 system/Entity/Cast/ArrayCast.php create mode 100644 system/Entity/Cast/BaseCast.php create mode 100644 system/Entity/Cast/BooleanCast.php create mode 100644 system/Entity/Cast/CSVCast.php create mode 100644 system/Entity/Cast/CastInterface.php create mode 100644 system/Entity/Cast/DatetimeCast.php create mode 100644 system/Entity/Cast/FloatCast.php create mode 100644 system/Entity/Cast/IntegerCast.php create mode 100644 system/Entity/Cast/JsonCast.php create mode 100644 system/Entity/Cast/ObjectCast.php create mode 100644 system/Entity/Cast/StringCast.php create mode 100644 system/Entity/Cast/TimestampCast.php create mode 100644 system/Entity/Cast/URICast.php create mode 100644 system/Entity/Entity.php create mode 100644 system/Entity/Exceptions/CastException.php create mode 100644 system/Exceptions/TestException.php create mode 100644 system/Files/FileCollection.php create mode 100644 system/Language/en/Cookie.php delete mode 100644 system/Language/en/Entity.php delete mode 100644 system/Language/en/Language.php create mode 100644 system/Language/en/Publisher.php delete mode 100644 system/Language/en/Redirect.php create mode 100644 system/Language/en/Test.php create mode 100644 system/Log/Handlers/ErrorlogHandler.php create mode 100644 system/Publisher/Exceptions/PublisherException.php create mode 100644 system/Publisher/Publisher.php create mode 100644 system/Test/Constraints/SeeInDatabase.php create mode 100644 system/Test/ControllerTestTrait.php create mode 100644 system/Test/DatabaseTestTrait.php create mode 100644 system/Test/FilterTestTrait.php create mode 100644 system/Test/TestResponse.php diff --git a/app/Config/App.php b/app/Config/App.php index e186f000..dcfc34f1 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -6,443 +6,459 @@ class App extends BaseConfig { - /** - * -------------------------------------------------------------------------- - * Base Site URL - * -------------------------------------------------------------------------- - * - * URL to your CodeIgniter root. Typically this will be your base URL, - * WITH a trailing slash: - * - * http://example.com/ - * - * If this is not set then CodeIgniter will try guess the protocol, domain - * and path to your installation. However, you should always configure this - * explicitly and never rely on auto-guessing, especially in production - * environments. - * - * @var string - */ - public $baseURL = 'http://localhost/plafor/public/'; - - /** - * -------------------------------------------------------------------------- - * Index File - * -------------------------------------------------------------------------- - * - * Typically this will be your index.php file, unless you've renamed it to - * something else. If you are using mod_rewrite to remove the page set this - * variable so that it is blank. - * - * @var string - */ - public $indexPage = ''; - - /** - * -------------------------------------------------------------------------- - * URI PROTOCOL - * -------------------------------------------------------------------------- - * - * This item determines which getServer global should be used to retrieve the - * URI string. The default setting of 'REQUEST_URI' works for most servers. - * If your links do not seem to work, try one of the other delicious flavors: - * - * 'REQUEST_URI' Uses $_SERVER['REQUEST_URI'] - * 'QUERY_STRING' Uses $_SERVER['QUERY_STRING'] - * 'PATH_INFO' Uses $_SERVER['PATH_INFO'] - * - * WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded! - * - * @var string - */ - public $uriProtocol = 'REQUEST_URI'; - - /** - * -------------------------------------------------------------------------- - * Default Locale - * -------------------------------------------------------------------------- - * - * The Locale roughly represents the language and location that your visitor - * is viewing the site from. It affects the language strings and other - * strings (like currency markers, numbers, etc), that your program - * should run under for this request. - * - * @var string - */ - public $defaultLocale = 'fr'; - - /** - * -------------------------------------------------------------------------- - * Negotiate Locale - * -------------------------------------------------------------------------- - * - * If true, the current Request object will automatically determine the - * language to use based on the value of the Accept-Language header. - * - * If false, no automatic detection will be performed. - * - * @var boolean - */ - public $negotiateLocale = false; - - /** - * -------------------------------------------------------------------------- - * Supported Locales - * -------------------------------------------------------------------------- - * - * If $negotiateLocale is true, this array lists the locales supported - * by the application in descending order of priority. If no match is - * found, the first locale will be used. - * - * @var string[] - */ - public $supportedLocales = ['en']; - - /** - * -------------------------------------------------------------------------- - * Application Timezone - * -------------------------------------------------------------------------- - * - * The default timezone that will be used in your application to display - * dates with the date helper, and can be retrieved through app_timezone() - * - * @var string - */ - public $appTimezone = 'Europe/Zurich'; - - /** - * -------------------------------------------------------------------------- - * Default Character Set - * -------------------------------------------------------------------------- - * - * This determines which character set is used by default in various methods - * that require a character set to be provided. - * - * @see http://php.net/htmlspecialchars for a list of supported charsets. - * - * @var string - */ - public $charset = 'UTF-8'; - - /** - * -------------------------------------------------------------------------- - * URI PROTOCOL - * -------------------------------------------------------------------------- - * - * If true, this will force every request made to this application to be - * made via a secure connection (HTTPS). If the incoming request is not - * secure, the user will be redirected to a secure version of the page - * and the HTTP Strict Transport Security header will be set. - * - * @var boolean - */ - public $forceGlobalSecureRequests = false; - - /** - * -------------------------------------------------------------------------- - * Session Driver - * -------------------------------------------------------------------------- - * - * The session storage driver to use: - * - `CodeIgniter\Session\Handlers\FileHandler` - * - `CodeIgniter\Session\Handlers\DatabaseHandler` - * - `CodeIgniter\Session\Handlers\MemcachedHandler` - * - `CodeIgniter\Session\Handlers\RedisHandler` - * - * @var string - */ - public $sessionDriver='CodeIgniter\Session\Handlers\DatabaseHandler'; - - /** - * -------------------------------------------------------------------------- - * Session Cookie Name - * -------------------------------------------------------------------------- - * - * The session cookie name, must contain only [0-9a-z_-] characters - * - * @var string - */ - public $sessionCookieName = 'ci_session'; - - /** - * -------------------------------------------------------------------------- - * Session Expiration - * -------------------------------------------------------------------------- - * - * The number of SECONDS you want the session to last. - * Setting to 0 (zero) means expire when the browser is closed. - * - * @var integer - */ - public $sessionExpiration = 7200; - - /** - * -------------------------------------------------------------------------- - * Session Save Path - * -------------------------------------------------------------------------- - * - * The location to save sessions to and is driver dependent. - * - * For the 'files' driver, it's a path to a writable directory. - * WARNING: Only absolute paths are supported! - * - * For the 'database' driver, it's a table name. - * Please read up the manual for the format with other session drivers. - * - * IMPORTANT: You are REQUIRED to set a valid save path! - * - * @var string - */ + /** + * -------------------------------------------------------------------------- + * Base Site URL + * -------------------------------------------------------------------------- + * + * URL to your CodeIgniter root. Typically this will be your base URL, + * WITH a trailing slash: + * + * http://example.com/ + * + * If this is not set then CodeIgniter will try guess the protocol, domain + * and path to your installation. However, you should always configure this + * explicitly and never rely on auto-guessing, especially in production + * environments. + * + * @var string + */ + public $baseURL = 'http://localhost/plafor/public'; + + /** + * -------------------------------------------------------------------------- + * Index File + * -------------------------------------------------------------------------- + * + * Typically this will be your index.php file, unless you've renamed it to + * something else. If you are using mod_rewrite to remove the page set this + * variable so that it is blank. + * + * @var string + */ + public $indexPage = 'index.php'; + + /** + * -------------------------------------------------------------------------- + * URI PROTOCOL + * -------------------------------------------------------------------------- + * + * This item determines which getServer global should be used to retrieve the + * URI string. The default setting of 'REQUEST_URI' works for most servers. + * If your links do not seem to work, try one of the other delicious flavors: + * + * 'REQUEST_URI' Uses $_SERVER['REQUEST_URI'] + * 'QUERY_STRING' Uses $_SERVER['QUERY_STRING'] + * 'PATH_INFO' Uses $_SERVER['PATH_INFO'] + * + * WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded! + * + * @var string + */ + public $uriProtocol = 'REQUEST_URI'; + + /** + * -------------------------------------------------------------------------- + * Default Locale + * -------------------------------------------------------------------------- + * + * The Locale roughly represents the language and location that your visitor + * is viewing the site from. It affects the language strings and other + * strings (like currency markers, numbers, etc), that your program + * should run under for this request. + * + * @var string + */ + public $defaultLocale = 'fr'; + + /** + * -------------------------------------------------------------------------- + * Negotiate Locale + * -------------------------------------------------------------------------- + * + * If true, the current Request object will automatically determine the + * language to use based on the value of the Accept-Language header. + * + * If false, no automatic detection will be performed. + * + * @var bool + */ + public $negotiateLocale = false; + + /** + * -------------------------------------------------------------------------- + * Supported Locales + * -------------------------------------------------------------------------- + * + * If $negotiateLocale is true, this array lists the locales supported + * by the application in descending order of priority. If no match is + * found, the first locale will be used. + * + * @var string[] + */ + public $supportedLocales = ['en']; + + /** + * -------------------------------------------------------------------------- + * Application Timezone + * -------------------------------------------------------------------------- + * + * The default timezone that will be used in your application to display + * dates with the date helper, and can be retrieved through app_timezone() + * + * @var string + */ + public $appTimezone = 'Europe/Zurich'; + + /** + * -------------------------------------------------------------------------- + * Default Character Set + * -------------------------------------------------------------------------- + * + * This determines which character set is used by default in various methods + * that require a character set to be provided. + * + * @see http://php.net/htmlspecialchars for a list of supported charsets. + * + * @var string + */ + public $charset = 'UTF-8'; + + /** + * -------------------------------------------------------------------------- + * URI PROTOCOL + * -------------------------------------------------------------------------- + * + * If true, this will force every request made to this application to be + * made via a secure connection (HTTPS). If the incoming request is not + * secure, the user will be redirected to a secure version of the page + * and the HTTP Strict Transport Security header will be set. + * + * @var bool + */ + public $forceGlobalSecureRequests = false; + + /** + * -------------------------------------------------------------------------- + * Session Driver + * -------------------------------------------------------------------------- + * + * The session storage driver to use: + * - `CodeIgniter\Session\Handlers\FileHandler` + * - `CodeIgniter\Session\Handlers\DatabaseHandler` + * - `CodeIgniter\Session\Handlers\MemcachedHandler` + * - `CodeIgniter\Session\Handlers\RedisHandler` + * + * @var string + */ + public $sessionDriver = 'CodeIgniter\Session\Handlers\DatabaseHandler'; + + /** + * -------------------------------------------------------------------------- + * Session Cookie Name + * -------------------------------------------------------------------------- + * + * The session cookie name, must contain only [0-9a-z_-] characters + * + * @var string + */ + public $sessionCookieName = 'ci_session'; + + /** + * -------------------------------------------------------------------------- + * Session Expiration + * -------------------------------------------------------------------------- + * + * The number of SECONDS you want the session to last. + * Setting to 0 (zero) means expire when the browser is closed. + * + * @var int + */ + public $sessionExpiration = 7200; + + /** + * -------------------------------------------------------------------------- + * Session Save Path + * -------------------------------------------------------------------------- + * + * The location to save sessions to and is driver dependent. + * + * For the 'files' driver, it's a path to a writable directory. + * WARNING: Only absolute paths are supported! + * + * For the 'database' driver, it's a table name. + * Please read up the manual for the format with other session drivers. + * + * IMPORTANT: You are REQUIRED to set a valid save path! + * + * @var string + */ public $sessionSavePath = 'ci_sessions'; - /** - * -------------------------------------------------------------------------- - * Session Match IP - * -------------------------------------------------------------------------- - * - * Whether to match the user's IP address when reading the session data. - * - * WARNING: If you're using the database driver, don't forget to update - * your session table's PRIMARY KEY when changing this setting. - * - * @var boolean - */ - public $sessionMatchIP = false; - - /** - * -------------------------------------------------------------------------- - * Session Time to Update - * -------------------------------------------------------------------------- - * - * How many seconds between CI regenerating the session ID. - * - * @var integer - */ - public $sessionTimeToUpdate = 20; - - /** - * -------------------------------------------------------------------------- - * Session Regenerate Destroy - * -------------------------------------------------------------------------- - * - * Whether to destroy session data associated with the old session ID - * when auto-regenerating the session ID. When set to FALSE, the data - * will be later deleted by the garbage collector. - * - * @var boolean - */ - public $sessionRegenerateDestroy = true; - - /** - * -------------------------------------------------------------------------- - * Cookie Prefix - * -------------------------------------------------------------------------- - * - * Set a cookie name prefix if you need to avoid collisions. - * - * @var string - */ - public $cookiePrefix = ''; - - /** - * -------------------------------------------------------------------------- - * Cookie Domain - * -------------------------------------------------------------------------- - * - * Set to `.your-domain.com` for site-wide cookies. - * - * @var string - */ - public $cookieDomain = ''; - - /** - * -------------------------------------------------------------------------- - * Cookie Path - * -------------------------------------------------------------------------- - * - * Typically will be a forward slash. - * - * @var string - */ - public $cookiePath = '/'; - - /** - * -------------------------------------------------------------------------- - * Cookie Secure - * -------------------------------------------------------------------------- - * - * Cookie will only be set if a secure HTTPS connection exists. - * - * @var boolean - */ - public $cookieSecure = false; - - /** - * -------------------------------------------------------------------------- - * Cookie HTTP Only - * -------------------------------------------------------------------------- - * - * Cookie will only be accessible via HTTP(S) (no JavaScript). - * - * @var boolean - */ - public $cookieHTTPOnly = false; - - /** - * -------------------------------------------------------------------------- - * Cookie SameSite - * -------------------------------------------------------------------------- - * - * Configure cookie SameSite setting. Allowed values are: - * - None - * - Lax - * - Strict - * - '' - * - * Defaults to `Lax` for compatibility with modern browsers. Setting `''` - * (empty string) means no SameSite attribute will be set on cookies. If - * set to `None`, `$cookieSecure` must also be set. - * - * @var string 'Lax'|'None'|'Strict' - */ - public $cookieSameSite = 'Lax'; - - /** - * -------------------------------------------------------------------------- - * Reverse Proxy IPs - * -------------------------------------------------------------------------- - * - * If your server is behind a reverse proxy, you must whitelist the proxy - * IP addresses from which CodeIgniter should trust headers such as - * HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify - * the visitor's IP address. - * - * You can use both an array or a comma-separated list of proxy addresses, - * as well as specifying whole subnets. Here are a few examples: - * - * Comma-separated: '10.0.1.200,192.168.5.0/24' - * Array: ['10.0.1.200', '192.168.5.0/24'] - * - * @var string|string[] - */ - public $proxyIPs = ''; - - /** - * -------------------------------------------------------------------------- - * CSRF Token Name - * -------------------------------------------------------------------------- - * - * The token name. - * - * @deprecated Use `Config\Security` $tokenName property instead of using this property. - * - * @var string - */ - public $CSRFTokenName = 'csrf_test_name'; - - /** - * -------------------------------------------------------------------------- - * CSRF Header Name - * -------------------------------------------------------------------------- - * - * The header name. - * - * @deprecated Use `Config\Security` $headerName property instead of using this property. - * - * @var string - */ - public $CSRFHeaderName = 'X-CSRF-TOKEN'; - - /** - * -------------------------------------------------------------------------- - * CSRF Cookie Name - * -------------------------------------------------------------------------- - * - * The cookie name. - * - * @deprecated Use `Config\Security` $cookieName property instead of using this property. - * - * @var string - */ - public $CSRFCookieName = 'csrf_cookie_name'; - - /** - * -------------------------------------------------------------------------- - * CSRF Expire - * -------------------------------------------------------------------------- - * - * The number in seconds the token should expire. - * - * @deprecated Use `Config\Security` $expire property instead of using this property. - * - * @var integer - */ - public $CSRFExpire = 7200; - - /** - * -------------------------------------------------------------------------- - * CSRF Regenerate - * -------------------------------------------------------------------------- - * - * Regenerate token on every submission? - * - * @deprecated Use `Config\Security` $regenerate property instead of using this property. - * - * @var boolean - */ - public $CSRFRegenerate = true; - - /** - * -------------------------------------------------------------------------- - * CSRF Redirect - * -------------------------------------------------------------------------- - * - * Redirect to previous page with error on failure? - * - * @deprecated Use `Config\Security` $redirect property instead of using this property. - * - * @var boolean - */ - public $CSRFRedirect = true; - - /** - * -------------------------------------------------------------------------- - * CSRF SameSite - * -------------------------------------------------------------------------- - * - * Setting for CSRF SameSite cookie token. Allowed values are: - * - None - * - Lax - * - Strict - * - '' - * - * Defaults to `Lax` as recommended in this link: - * - * @see https://portswigger.net/web-security/csrf/samesite-cookies - * - * @deprecated Use `Config\Security` $samesite property instead of using this property. - * - * @var string - */ - public $CSRFSameSite = 'Lax'; - - /** - * -------------------------------------------------------------------------- - * Content Security Policy - * -------------------------------------------------------------------------- - * - * Enables the Response's Content Secure Policy to restrict the sources that - * can be used for images, scripts, CSS files, audio, video, etc. If enabled, - * the Response object will populate default values for the policy from the - * `ContentSecurityPolicy.php` file. Controllers can always add to those - * restrictions at run time. - * - * For a better understanding of CSP, see these documents: - * - * @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/ - * @see http://www.w3.org/TR/CSP/ - * - * @var boolean - */ - public $CSPEnabled = false; + /** + * -------------------------------------------------------------------------- + * Session Match IP + * -------------------------------------------------------------------------- + * + * Whether to match the user's IP address when reading the session data. + * + * WARNING: If you're using the database driver, don't forget to update + * your session table's PRIMARY KEY when changing this setting. + * + * @var bool + */ + public $sessionMatchIP = false; + + /** + * -------------------------------------------------------------------------- + * Session Time to Update + * -------------------------------------------------------------------------- + * + * How many seconds between CI regenerating the session ID. + * + * @var int + */ + public $sessionTimeToUpdate = 20; + + /** + * -------------------------------------------------------------------------- + * Session Regenerate Destroy + * -------------------------------------------------------------------------- + * + * Whether to destroy session data associated with the old session ID + * when auto-regenerating the session ID. When set to FALSE, the data + * will be later deleted by the garbage collector. + * + * @var bool + */ + public $sessionRegenerateDestroy = true; + + /** + * -------------------------------------------------------------------------- + * Cookie Prefix + * -------------------------------------------------------------------------- + * + * Set a cookie name prefix if you need to avoid collisions. + * + * @var string + * + * @deprecated use Config\Cookie::$prefix property instead. + */ + public $cookiePrefix = ''; + + /** + * -------------------------------------------------------------------------- + * Cookie Domain + * -------------------------------------------------------------------------- + * + * Set to `.your-domain.com` for site-wide cookies. + * + * @var string + * + * @deprecated use Config\Cookie::$domain property instead. + */ + public $cookieDomain = ''; + + /** + * -------------------------------------------------------------------------- + * Cookie Path + * -------------------------------------------------------------------------- + * + * Typically will be a forward slash. + * + * @var string + * + * @deprecated use Config\Cookie::$path property instead. + */ + public $cookiePath = '/'; + + /** + * -------------------------------------------------------------------------- + * Cookie Secure + * -------------------------------------------------------------------------- + * + * Cookie will only be set if a secure HTTPS connection exists. + * + * @var bool + * + * @deprecated use Config\Cookie::$secure property instead. + */ + public $cookieSecure = false; + + /** + * -------------------------------------------------------------------------- + * Cookie HttpOnly + * -------------------------------------------------------------------------- + * + * Cookie will only be accessible via HTTP(S) (no JavaScript). + * + * @var bool + * + * @deprecated use Config\Cookie::$httponly property instead. + */ + public $cookieHTTPOnly = false; + + /** + * -------------------------------------------------------------------------- + * Cookie SameSite + * -------------------------------------------------------------------------- + * + * Configure cookie SameSite setting. Allowed values are: + * - None + * - Lax + * - Strict + * - '' + * + * Alternatively, you can use the constant names: + * - `Cookie::SAMESITE_NONE` + * - `Cookie::SAMESITE_LAX` + * - `Cookie::SAMESITE_STRICT` + * + * Defaults to `Lax` for compatibility with modern browsers. Setting `''` + * (empty string) means default SameSite attribute set by browsers (`Lax`) + * will be set on cookies. If set to `None`, `$cookieSecure` must also be set. + * + * @var string + * + * @deprecated use Config\Cookie::$samesite property instead. + */ + public $cookieSameSite = 'Lax'; + + /** + * -------------------------------------------------------------------------- + * Reverse Proxy IPs + * -------------------------------------------------------------------------- + * + * If your server is behind a reverse proxy, you must whitelist the proxy + * IP addresses from which CodeIgniter should trust headers such as + * HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify + * the visitor's IP address. + * + * You can use both an array or a comma-separated list of proxy addresses, + * as well as specifying whole subnets. Here are a few examples: + * + * Comma-separated: '10.0.1.200,192.168.5.0/24' + * Array: ['10.0.1.200', '192.168.5.0/24'] + * + * @var string|string[] + */ + public $proxyIPs = ''; + + /** + * -------------------------------------------------------------------------- + * CSRF Token Name + * -------------------------------------------------------------------------- + * + * The token name. + * + * @deprecated Use `Config\Security` $tokenName property instead of using this property. + * + * @var string + */ + public $CSRFTokenName = 'csrf_test_name'; + + /** + * -------------------------------------------------------------------------- + * CSRF Header Name + * -------------------------------------------------------------------------- + * + * The header name. + * + * @deprecated Use `Config\Security` $headerName property instead of using this property. + * + * @var string + */ + public $CSRFHeaderName = 'X-CSRF-TOKEN'; + + /** + * -------------------------------------------------------------------------- + * CSRF Cookie Name + * -------------------------------------------------------------------------- + * + * The cookie name. + * + * @deprecated Use `Config\Security` $cookieName property instead of using this property. + * + * @var string + */ + public $CSRFCookieName = 'csrf_cookie_name'; + + /** + * -------------------------------------------------------------------------- + * CSRF Expire + * -------------------------------------------------------------------------- + * + * The number in seconds the token should expire. + * + * @deprecated Use `Config\Security` $expire property instead of using this property. + * + * @var int + */ + public $CSRFExpire = 7200; + + /** + * -------------------------------------------------------------------------- + * CSRF Regenerate + * -------------------------------------------------------------------------- + * + * Regenerate token on every submission? + * + * @deprecated Use `Config\Security` $regenerate property instead of using this property. + * + * @var bool + */ + public $CSRFRegenerate = true; + + /** + * -------------------------------------------------------------------------- + * CSRF Redirect + * -------------------------------------------------------------------------- + * + * Redirect to previous page with error on failure? + * + * @deprecated Use `Config\Security` $redirect property instead of using this property. + * + * @var bool + */ + public $CSRFRedirect = true; + + /** + * -------------------------------------------------------------------------- + * CSRF SameSite + * -------------------------------------------------------------------------- + * + * Setting for CSRF SameSite cookie token. Allowed values are: + * - None + * - Lax + * - Strict + * - '' + * + * Defaults to `Lax` as recommended in this link: + * + * @see https://portswigger.net/web-security/csrf/samesite-cookies + * @deprecated Use `Config\Security` $samesite property instead of using this property. + * + * @var string + */ + public $CSRFSameSite = 'Lax'; + + /** + * -------------------------------------------------------------------------- + * Content Security Policy + * -------------------------------------------------------------------------- + * + * Enables the Response's Content Secure Policy to restrict the sources that + * can be used for images, scripts, CSS files, audio, video, etc. If enabled, + * the Response object will populate default values for the policy from the + * `ContentSecurityPolicy.php` file. Controllers can always add to those + * restrictions at run time. + * + * For a better understanding of CSP, see these documents: + * + * @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/ + * @see http://www.w3.org/TR/CSP/ + * + * @var bool + */ + public $CSPEnabled = false; } diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php index e40dc903..3cc9fb90 100644 --- a/app/Config/Autoload.php +++ b/app/Config/Autoload.php @@ -6,7 +6,7 @@ /** * ------------------------------------------------------------------- - * AUTO-LOADER + * AUTOLOADER CONFIGURATION * ------------------------------------------------------------------- * * This file defines the namespaces and class maps so the Autoloader @@ -17,54 +17,75 @@ */ class Autoload extends AutoloadConfig { - /** - * ------------------------------------------------------------------- - * Namespaces - * ------------------------------------------------------------------- - * This maps the locations of any namespaces in your application to - * their location on the file system. These are used by the autoloader - * to locate files the first time they have been instantiated. - * - * The '/app' and '/system' directories are already mapped for you. - * you may change the name of the 'App' namespace if you wish, - * but this should be done prior to creating any namespaced classes, - * else you will need to modify all of those classes for this to work. - * - * Prototype: - * - * $psr4 = [ - * 'CodeIgniter' => SYSTEMPATH, - * 'App' => APPPATH - * ]; - * - * @var array - */ - public $psr4 = [ - APP_NAMESPACE => APPPATH, // For custom app namespace - 'Config' => APPPATH . 'Config', + /** + * ------------------------------------------------------------------- + * Namespaces + * ------------------------------------------------------------------- + * This maps the locations of any namespaces in your application to + * their location on the file system. These are used by the autoloader + * to locate files the first time they have been instantiated. + * + * The '/app' and '/system' directories are already mapped for you. + * you may change the name of the 'App' namespace if you wish, + * but this should be done prior to creating any namespaced classes, + * else you will need to modify all of those classes for this to work. + * + * Prototype: + *``` + * $psr4 = [ + * 'CodeIgniter' => SYSTEMPATH, + * 'App' => APPPATH + * ]; + *``` + * + * @var array + */ + public $psr4 = [ + APP_NAMESPACE => APPPATH, // For custom app namespace + 'Config' => APPPATH . 'Config', 'Common' => ROOTPATH.'orif/common', 'Welcome' => ROOTPATH.'orif/welcome', 'User' => ROOTPATH.'orif/user', 'Plafor' => ROOTPATH.'orif/plafor' - ]; + ]; - /** - * ------------------------------------------------------------------- - * Class Map - * ------------------------------------------------------------------- - * The class map provides a map of class names and their exact - * location on the drive. Classes loaded in this manner will have - * slightly faster performance because they will not have to be - * searched for within one or more directories as they would if they - * were being autoloaded through a namespace. - * - * Prototype: - * - * $classmap = [ - * 'MyClass' => '/path/to/class/file.php' - * ]; - * - * @var array - */ - public $classmap = []; + /** + * ------------------------------------------------------------------- + * Class Map + * ------------------------------------------------------------------- + * The class map provides a map of class names and their exact + * location on the drive. Classes loaded in this manner will have + * slightly faster performance because they will not have to be + * searched for within one or more directories as they would if they + * were being autoloaded through a namespace. + * + * Prototype: + *``` + * $classmap = [ + * 'MyClass' => '/path/to/class/file.php' + * ]; + *``` + * + * @var array + */ + public $classmap = []; + + /** + * ------------------------------------------------------------------- + * Files + * ------------------------------------------------------------------- + * The files array provides a list of paths to __non-class__ files + * that will be autoloaded. This can be useful for bootstrap operations + * or for loading functions. + * + * Prototype: + * ``` + * $files = [ + * '/path/to/my/file.php', + * ]; + * ``` + * + * @var array + */ + public $files = []; } diff --git a/app/Config/CURLRequest.php b/app/Config/CURLRequest.php new file mode 100644 index 00000000..b4c8e5c4 --- /dev/null +++ b/app/Config/CURLRequest.php @@ -0,0 +1,22 @@ + - */ - public $file = [ - 'storePath' => WRITEPATH . 'cache/', - 'mode' => 0640, - ]; + /** + * -------------------------------------------------------------------------- + * Default TTL + * -------------------------------------------------------------------------- + * + * The default number of seconds to save items when none is specified. + * + * WARNING: This is not used by framework handlers where 60 seconds is + * hard-coded, but may be useful to projects and modules. This will replace + * the hard-coded value in a future release. + * + * @var int + */ + public $ttl = 60; - /** - * ------------------------------------------------------------------------- - * Memcached settings - * ------------------------------------------------------------------------- - * Your Memcached servers can be specified below, if you are using - * the Memcached drivers. - * - * @see https://codeigniter.com/user_guide/libraries/caching.html#memcached - * - * @var array - */ - public $memcached = [ - 'host' => '127.0.0.1', - 'port' => 11211, - 'weight' => 1, - 'raw' => false, - ]; + /** + * -------------------------------------------------------------------------- + * Reserved Characters + * -------------------------------------------------------------------------- + * + * A string of reserved characters that will not be allowed in keys or tags. + * Strings that violate this restriction will cause handlers to throw. + * Default: {}()/\@: + * Note: The default set is required for PSR-6 compliance. + * + * @var string + */ + public $reservedCharacters = '{}()/\@:'; - /** - * ------------------------------------------------------------------------- - * Redis settings - * ------------------------------------------------------------------------- - * Your Redis server can be specified below, if you are using - * the Redis or Predis drivers. - * - * @var array - */ - public $redis = [ - 'host' => '127.0.0.1', - 'password' => null, - 'port' => 6379, - 'timeout' => 0, - 'database' => 0, - ]; + /** + * -------------------------------------------------------------------------- + * File settings + * -------------------------------------------------------------------------- + * Your file storage preferences can be specified below, if you are using + * the File driver. + * + * @var array + */ + public $file = [ + 'storePath' => WRITEPATH . 'cache/', + 'mode' => 0640, + ]; - /** - * -------------------------------------------------------------------------- - * Available Cache Handlers - * -------------------------------------------------------------------------- - * - * This is an array of cache engine alias' and class names. Only engines - * that are listed here are allowed to be used. - * - * @var array - */ - public $validHandlers = [ - 'dummy' => DummyHandler::class, - 'file' => FileHandler::class, - 'memcached' => MemcachedHandler::class, - 'predis' => PredisHandler::class, - 'redis' => RedisHandler::class, - 'wincache' => WincacheHandler::class, - ]; + /** + * ------------------------------------------------------------------------- + * Memcached settings + * ------------------------------------------------------------------------- + * Your Memcached servers can be specified below, if you are using + * the Memcached drivers. + * + * @see https://codeigniter.com/user_guide/libraries/caching.html#memcached + * + * @var array + */ + public $memcached = [ + 'host' => '127.0.0.1', + 'port' => 11211, + 'weight' => 1, + 'raw' => false, + ]; + + /** + * ------------------------------------------------------------------------- + * Redis settings + * ------------------------------------------------------------------------- + * Your Redis server can be specified below, if you are using + * the Redis or Predis drivers. + * + * @var array + */ + public $redis = [ + 'host' => '127.0.0.1', + 'password' => null, + 'port' => 6379, + 'timeout' => 0, + 'database' => 0, + ]; + + /** + * -------------------------------------------------------------------------- + * Available Cache Handlers + * -------------------------------------------------------------------------- + * + * This is an array of cache engine alias' and class names. Only engines + * that are listed here are allowed to be used. + * + * @var array + */ + public $validHandlers = [ + 'dummy' => DummyHandler::class, + 'file' => FileHandler::class, + 'memcached' => MemcachedHandler::class, + 'predis' => PredisHandler::class, + 'redis' => RedisHandler::class, + 'wincache' => WincacheHandler::class, + ]; } diff --git a/app/Config/ContentSecurityPolicy.php b/app/Config/ContentSecurityPolicy.php index e357cba6..6fa5bd7b 100644 --- a/app/Config/ContentSecurityPolicy.php +++ b/app/Config/ContentSecurityPolicy.php @@ -15,145 +15,153 @@ */ class ContentSecurityPolicy extends BaseConfig { - //------------------------------------------------------------------------- - // Broadbrush CSP management - //------------------------------------------------------------------------- - - /** - * Default CSP report context - * - * @var boolean - */ - public $reportOnly = false; - - /** - * Specifies a URL where a browser will send reports - * when a content security policy is violated. - * - * @var string|null - */ - public $reportURI = null; - - /** - * Instructs user agents to rewrite URL schemes, changing - * HTTP to HTTPS. This directive is for websites with - * large numbers of old URLs that need to be rewritten. - * - * @var boolean - */ - public $upgradeInsecureRequests = false; - - //------------------------------------------------------------------------- - // Sources allowed - // Note: once you set a policy to 'none', it cannot be further restricted - //------------------------------------------------------------------------- - - /** - * Will default to self if not overridden - * - * @var string|string[]|null - */ - public $defaultSrc = null; - - /** - * Lists allowed scripts' URLs. - * - * @var string|string[] - */ - public $scriptSrc = 'self'; - - /** - * Lists allowed stylesheets' URLs. - * - * @var string|string[] - */ - public $styleSrc = 'self'; - - /** - * Defines the origins from which images can be loaded. - * - * @var string|string[] - */ - public $imageSrc = 'self'; - - /** - * Restricts the URLs that can appear in a page's `` element. - * - * Will default to self if not overridden - * - * @var string|string[]|null - */ - public $baseURI = null; - - /** - * Lists the URLs for workers and embedded frame contents - * - * @var string|string[] - */ - public $childSrc = 'self'; - - /** - * Limits the origins that you can connect to (via XHR, - * WebSockets, and EventSource). - * - * @var string|string[] - */ - public $connectSrc = 'self'; - - /** - * Specifies the origins that can serve web fonts. - * - * @var string|string[] - */ - public $fontSrc = null; - - /** - * Lists valid endpoints for submission from `

    ` tags. - * - * @var string|string[] - */ - public $formAction = 'self'; - - /** - * Specifies the sources that can embed the current page. - * This directive applies to ``, `