From ae3be2b9776f28653d965678cf7e5f5df9dabb8b Mon Sep 17 00:00:00 2001 From: "George Frederick \"Buzz\" Beurling" Date: Sun, 22 Mar 2020 20:00:23 -0400 Subject: [PATCH] Permission update --- app/GoogleDriveFile.php | 74 +++ .../Controllers/GoogleDriveController.php | 7 +- app/Http/Controllers/OCOMController.php | 628 ++---------------- app/Http/Controllers/ScheduleController.php | 4 +- app/Http/Middleware/CheckFilePerm.php | 71 +- app/OCOM.php | 5 + .../assets/fullcalendar/core/locales/fr-ca.js | 2 +- public/css/custom.css | 4 + public/js/calendar.js | 17 +- public/js/plugins/drive-explorer.js | 2 - resources/custom.css | 4 + resources/views/admin/article/index.blade.php | 4 +- .../admin/calendar/calendar_display.blade.php | 2 + .../views/admin/configs/jobs/index.blade.php | 8 +- .../views/admin/configs/ranks/index.blade.php | 8 +- .../views/admin/configs/ranks/show.blade.php | 2 +- resources/views/admin/dashboard.blade.php | 2 +- .../files/Google Drive/explorer.blade.php | 41 +- resources/views/admin/job/add.blade.php | 4 +- resources/views/admin/log/display.blade.php | 8 +- resources/views/admin/ocom/generate.blade.php | 24 +- resources/views/admin/update.blade.php | 52 +- resources/views/admin/user/profil.blade.php | 2 +- resources/views/errors/layout.blade.php | 1 - resources/views/layouts/admin/head.blade.php | 8 +- .../views/layouts/admin/sidebar.blade.php | 8 + routes/web.php | 7 +- 27 files changed, 344 insertions(+), 655 deletions(-) diff --git a/app/GoogleDriveFile.php b/app/GoogleDriveFile.php index 9ab0b2ca..dde0e2a4 100644 --- a/app/GoogleDriveFile.php +++ b/app/GoogleDriveFile.php @@ -238,9 +238,40 @@ class GoogleDriveFile extends Model public static function getPermForUser($folder,$user,$perm = 'r') { + if ($folder == '' || $folder == "root") + { + if ($user->p('file_manage') == 1) + { + return true; + } + else + { + return false; + } + } $dir = \App\GoogleDriveFile::find($folder); if ($dir == null) { + $path = GoogleDriveFile::getPathFolder($folder); + $exploderPath = explode('/',$path); + for ($i = count($exploderPath)-1; $i >= 0; $i--) + { + $dir = \App\GoogleDriveFile::find($exploderPath[$i]); + if ($dir != null) + { + $metaData = \Storage::cloud()->getMetadata($folder); + $googleDriveFile = new GoogleDriveFile(); + $googleDriveFile->id = $folder; + $googleDriveFile->type = 'directory'; + $googleDriveFile->name = $metaData['name']; + $googleDriveFile->path = self::recreatePath($folder); + $googleDriveFile->rank_permission = $dir->rank_permission; + $googleDriveFile->job_permission = $dir->job_permission; + $googleDriveFile->user_permission = $dir->user_permission; + $googleDriveFile->save(); + return $dir->canUser($user,$perm); + } + } return false; } else @@ -253,4 +284,47 @@ class GoogleDriveFile extends Model { return self::getPermForUser($folder,\Auth::user(),$perm); } + + public static function getPathFolder($folder) + { + $allDir = \Storage::cloud()->allDirectories(); + foreach ($allDir as $dir) + { + $exploderDir = explode('/',$dir); + if ($exploderDir[count($exploderDir)-1] == $folder) + { + return $dir; + } + } + } + + public static function recreatePath($folder) + { + $path = []; + $name = []; + $directories = collect(json_decode(self::getPathArray(),true)); + foreach ($directories as $dir) + { + $path[$dir['basename']] = $dir['dirname']; + $name[$dir['basename']] = $dir['name']; + } + $realPath = $name[$folder]; + $foo = $folder; + while ($foo != "") + { + $bar = explode('/',$path[$foo]); + $foo = $bar[count($bar)-1]; + if ($foo != "") + { + $realPath = $name[$foo].'/'.$realPath; + } + } + return $realPath; + } + + public static function getPathArray() + { + $contents = collect(Storage::cloud()->listContents('/', true)); + return json_encode($contents->where('type', '=', 'dir')); + } } diff --git a/app/Http/Controllers/GoogleDriveController.php b/app/Http/Controllers/GoogleDriveController.php index 4200201e..0a4431d1 100644 --- a/app/Http/Controllers/GoogleDriveController.php +++ b/app/Http/Controllers/GoogleDriveController.php @@ -237,6 +237,7 @@ class GoogleDriveController extends Controller public function list($folder = 'root') { $recursive = false; // Get subdirectories also? + $perm = ['r' => GoogleDriveFile::getPermForAuthUser($folder,'r'),'w' => GoogleDriveFile::getPermForAuthUser($folder,'w'),'p' => GoogleDriveFile::getPermForAuthUser($folder,'p')]; if ($folder == 'root') { $contents = collect(Storage::cloud()->listContents('/', $recursive)); @@ -246,7 +247,11 @@ class GoogleDriveController extends Controller $contents = collect(Storage::cloud()->listContents($folder, $recursive)); } - return view('admin.files.Google Drive.explorer',['directories' => $contents->where('type', '=', 'dir')->sortByDesc('name'), 'files' => $contents->where('type', '=', 'file'), 'currentDir' => $folder]); + return view('admin.files.Google Drive.explorer',[ + 'directories' => $contents->where('type', '=', 'dir')->sortByDesc('name'), + 'files' => $contents->where('type', '=', 'file'), + 'currentDir' => $folder, + 'permission' => $perm]); } public function checkFileSystem() diff --git a/app/Http/Controllers/OCOMController.php b/app/Http/Controllers/OCOMController.php index 5aee0c07..4a6fb879 100644 --- a/app/Http/Controllers/OCOMController.php +++ b/app/Http/Controllers/OCOMController.php @@ -33,575 +33,65 @@ class OCOMController extends Controller public function generate() { - $text = "Niveau 1,,,,,,,,,Niveau 2,,,,,,,,,Niveau 3,,,,,,,,,Niveau 4,,,,,,, -N° de l'OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbredepériode,,Nbre dans horaire,Instructeur,,N° de l’OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbre de période,,Nbre dans horaire,Instructeur,,\"N° de - l’OREN\",\"Objectif de - rendement\",\"N° de - l’OCOM\",Objectif de compétence,Nbredepériodes,,Nbre dans horaire,Instructeur,,N° de l'OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbredepériode,,Nbre dans horaire,Instructeur -100,\"Participer à l'instruction - sur les relations sociales positives pour les jeunes\",S.O.,Sous-module 1 — Nos attentes face aux cadets,2,,,,,X01,\"Participer à des activités sur le - civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,X01,\"Participer à des - activités sur le civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,400,Participer à l'instruction sur les relations sociales positives pour les jeunes,S.O.,Sous-module 1 – Votre responsabilité en tant que chef à influencer les relations sociales positives,2,,, -,,S.O.,\"Sous-module 2 — Ce qui peut se produire - lorsque les comportements dépassent ou ne répondent pas aux attentes\",1,,,,,,,MX01.01B,\"Assister à une présentation donnée par - un organisme communautaire\",3,,,,,,,MX01.01B,\"Assister à une présentation donnée par un - organisme communautaire\",3,,,,,,,S.O.,Sous-module 2 – Ce que les plaintes et le consentement sont et la façon de pratiquer la réduction du risque,2,,, -,,S.O.,\"Sous-module 3 — Ce que sont le harcèlement, - les actes criminels et la violence faite aux enfants et où on peut obtenir de l’aide\",1,,,,,,,MX01.01C,\"Assister à une présentation donnée par - un citoyen d'intérêt\",3,,,,,,,MX01.01C,\"Assister à une présentation donnée par un citoyen - d’intérêt\",3,,,,,,,S.O.,Sous-module 3 – Votre responsabilité en tant que chef pour aider à gérer les conflits,2,,, -,,S.O.,Sous-module 4- ,2,,,,,,,MX01.01D,\"Participer au défi de la citoyenneté - canadienne\",3,,,,,,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,,,,,,,OREN 400 - Total des périodes d’instruction obligatoires,6,,, -,,\"OREN 100 - Total des périodes d’instruction - obligatoires\",,6,,0,,,,,MX01.01E,\"Organiser une cérémonie de - citoyenneté\",3,,,, ,,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,,,,,,OREN 400 - Total des périodes d’instruction complémentaires,0,,, -X01,\"Participer à des activités - sur le civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,,,MX01.01F,Participer à une élection,3,,,,,,,MX01.01F,Participer à une élection,3,,,,,X01,Participer à des activités sur le civisme,MX01.01A,Participer à une visite reliée au civisme,3,,, -,,MX01.01B,\"Assister à une présentation donnée par un - organisme communautaire\",3,,,,,,,MX01.01G,\"Participer à des activités relatives aux - vidéos sur les Minutes du Patrimoine\",3,,,,,,,MX01.01G,\"Participer à des activités relatives aux vidéos sur les - Minutes du Patrimoine\",3,,,,,,,MX01.01B,Assister à une présentation donnée par un organisme communautaire,3,,, -,,MX01.01C,\"Assister à une présentation donnée par un - citoyen d'intérêt\",3,,,,,,,MX01.01H,\"Participer à des ateliers - d'apprentissage sur le civisme\",3,,,,,,,MX01.01H,\"Participer à des ateliers d’apprentissage sur le - civisme\",3,,,,,,,MX01.01C,Assister à une présentation donnée par un citoyen d'intérêt,3,,, -,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,, -,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,,,,,\"OREN X01 – Total des périodes d’instruction - obligatoires\",,3,,0,,,,,OREN X01 - Total des périodes d’instruction obligatoires,,3,,,,,,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,, -,,MX01.01F,Participer à une élection,3,,,,,,,\"OREN X01 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,\"OREN X01 - Total des périodes d’instruction - complémentaires\",,18,,,,,,,MX01.01F,Participer à une élection,3,,, -,,MX01.01G,\"Participer à des activités relatives aux vidéos - sur les Minutes du Patrimoine\",3,,,,,X02,\"Effectuer un service - communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,X02,\"Effectuer un service - communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,,,MX01.01G,Participer à des activités relatives aux vidéos sur les minutes du Patrimoine,3,,, -,,MX01.01H,\"Participer à des ateliers d'apprentissage sur le - civisme\",3,,,,,,,CX02.01,Effectuer un service communautaire,18,,,,,,,CX02.01,Effectuer un service communautaire,18,,,,,,,MX01.01H,Participer à des ateliers d'apprentissage sur le civisme,3,,, -,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,\"OREN X02 – Total des périodes d’instruction - obligatoires\",,9,,,,,,,OREN X02 - Total des périodes d’instruction obligatoires,,9,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,, -,,\"OREN X01 - Total des périodes d’instruction - obligatoires\",,3,,0,,,,,\"OREN X02 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,\"OREN X02 - Total des périodes d’instruction - complémentaires\",,18,,,,,,,,OREN X01 - Total des périodes d’instruction obligatoires,3,,, -,,\"OREN X01 - Total des périodes d’instruction - complémentaires\",,18,,,,,203,\"Démontrer des qualités de - leadership auprès des pairs\",M203.01,Discuter du leadership entre pairs,1,,1,,,303,\"Exercer le rôle d’un - chef d’équipe\",M303.01,Définir le rôle d’un chef d’équipe,2,,2,,,,,,OREN X01 - Total des périodes d’instruction complémentaires,18,,, -X02,\"Effectuer un service - communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,,,M203.02,Discuter des principes de leadership,1,,1,,,,,M303.02,Participer à une relation de mentorat,1,,1,,,X02,Effectuer un service communautaire,MX02.01,Effectuer un service communautaire,9,,, -,,CX02.01,Effectuer un service communautaire,18,,,,,,,M203.03,\"Discuter de la communication efficace - entre pairs\",1,,1,,,,,M303.03,Pratiquer l’auto-évaluation,1,,1,,,,,CX02.01,Effectuer un service communautaire,18,,, -,,\"OREN X01 - Total des périodes d’instruction - obligatoires\",,9,,0,,,,,M203.04,\"Démontrer la dynamique de groupe - positive\",2,,2,,,,,M303.04,Communiquer à titre de chef d’équipe,2,,2,,,,,,OREN X02 - Total des périodes d’instruction obligatoires,9,,, -,,\"OREN X01 - Total des périodes d’instruction - complémentaires\",,18,,0,,,,,M203.05,Discuter des comportements influents,1,,1,,,,,M303.05,Superviser les cadets,2,,2,,,,,,OREN X02 - Total des périodes d’instruction complémentaires,18,,, -103,\"Participer à titre de - membre d'une équipe\",M103.01,\"Identifier les responsabilités d'un suiveur dans - une équipe\",1,,1,,,,,M203.06,Utiliser la résolution de problème,2,,2,,,,,M303.06,Résoudre les problèmes,2,,2,,,403,Agir à titre de chef d'équipe,M403.01,Décrire les besoins et les attentes des membres d'une équipe,1,,, -,,M103.02,\"Établir un objectif personnel pour l'année - d'instruction\",1,,1,,,,,M203.07,\"Discuter de l'intégrité personnelle - comme qualité de leadership\",1,,1,,,,,M303.07,\"Diriger les cadets tout au long d’une tâche en - leadership\",2,,2,,,,,M403.02,Choisir une approche de leadership,2,,, -,,M103.03,\"Participer à des activités de promotion du - travail d’équipe\",2,,2,,,,,M203.08,\"Participer à des activités de promotion - du travail d’équipe\",1,,1,,,,,COREN de l’OREN 303,,0,,,,,,,M403.03,Motiver les membres d’une équipe,2,,, -,,C103.02,Participer à des présentations de soi,1,,,,,,,C203.02,Utiliser la résolution de problème,2,,,,,,,C303.02,Donner une présentation au sujet d’un chef,2,,,,,,,M403.04,Donner de la rétroaction aux membres de l'équipe,2,,, -,,C103.03,\"Participer à des activités de promotion du - travail d’équipe\",1,,,,,,,C203.03,Discuter des caractéristiques d'un chef,2,,,,,,,C203.01,Consigner des entrées dans un journal réflectif,3,,,,,,,M403.05,Participer à une relation de mentorat,2,,, -,,\"OREN 103 - Total des périodes d’instruction - obligatoires\",,4,,4,,,,,C203.04,\"Participer à une présentation donnée - par un chef\",2,,,,,,,C203.02,Utiliser la résolution de problème,2,,,,,,,M403.06,Agir à titre de chef d'équipe lors d’une affectation à un poste de leadership,1,,, -,,\"OREN 103 - Total des périodes d’instruction - complémentaires\",,3,,0,,,,,C203.05,\"Participer à des activités de - renforcement de la confiance\",1,,,,,,,C203.04,Participer à une présentation donnée par un chef,2,,,,,,,COREN de l'OREN 403,,0,,, -X04,\"Suivre la participation à - des activités physiques\",MX04.01,\"Participer à 60 minutes d'activités physiques - d'intensité modérée à élevée (APIME) et suivre la participation à des activités physiques\",3,,,,,,,C203.06,\"Participer à des activités de résolution - de problème\",2,,,,,,,C203.05,\"Participer à des activités de renforcement de la - confiance\",1,,,,,,,C403.01,Participer à un séminaire sur le leadership,4 x 3,,, -,,MX04.02,\"Identifier des stratégies en vue d'accroître - la participation à des activités physiques et participer à l'évaluation de la condition physique des cadets\",3,,,,,,,\"OREN 203 – Total des périodes d’instruction - obligatoires\",,10,,10,,,,,C203.06,Participer à des activités de résolution de problème,2,,,,,,,C303.01,Diriger une activité de promotion du travail d’équipe,3,,, -,,MX04.03,\"Participer à l’évaluation de la condition - physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,,,\"OREN 203 – Total des périodes d’instruction - complémentaires\",,12,,,,,,,C103.03,\"Participer à des activités de promotion du travail - d’équipe\",1,,,,,,,C303.02,Donner une présentation au sujet d'un chef,2,,, -,,CX04.01,\"Participer à l’évaluation de la condition - physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,X04,\"Suivre la participation à des - activités physiques\",MX04.01,\"Participer à 60 minutes d'activités - physiques d'intensité modérée à élevée (APIME) et suivre la - participation à des activités physiques\",3,,,,,,,OREN 303 - Total des périodes d’instruction obligatoires,,12,,,,,,,,OREN 403 - Total des périodes d’instruction obligatoires,10,,, -,,CX04.02,\"Participer à des activités qui renforcent les trois - éléments de la bonne forme physique\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue - d'accroître la participation à des activités physiques et participer à l'évaluation de la condition physique des cadets\",3,,,,,,,OREN 303 - Total des périodes d’instruction complémentaires,,16,,,,,,,,OREN 403 - Total des périodes d’instruction complémentaires,17,,, -,,CX04.03,Participer à un cours de cuisine,3,,,,,,,MX04.03,\"Participer à l’évaluation de la condition - physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique\",3,,,,,X04,\"Suivre la - participation à des activités physiques\",MX04.01,\"Participer à 60 minutes d’activités physiques - d’intensité modérée à élevée (APIME) et suivre la participation à des activités physiques\",3,,,,,X04,Suivre la participation à des activités physiques,MX04.01,Participer à 60 minutes d'activités physiques d'intensité modérée à élevée (APME) et suivre la participation à des activités physiques,3,,, -,,CX04.04,\"Assister à une présentation sur la bonne forme - physique et le mode de vie sain\",3,,,,,,,CX04.01,\"Participer à l’évaluation de la condition - physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue d’accroître la - participation à des activités physiques et participer à l’évaluation de la condition physique des cadets\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue d'accroître la participation à des activités physiques et participer à l'évaluation de la condition - physique des cadets\",3,,, -,,CX04.05,Assister à un événement sportif amateur local,3,,1,,,,,CX04.02,\"Participer aux activités qui renforcent - les trois éléments de la condition physique\",3,,,,,,,MX04.03,\"Participer à l’évaluation de la condition physique des - cadets et élaborer des stratégies en vue d’accroître la bonne forme physique personnelle\",3,,,,,,,MX04.03,\"Participer à l'évaluation de la condition physique des cadets et élaborer des stratégies en vue d'accroître la bonne - forme physique personnelle\",3,,, -,,\"OREN X04 - Total des périodes d’instruction - obligatoires\",,9,,0,,,,,CX04.03,Participer à une classe de cuisine,3,,,,,,,CX04.01,\"Participer à l’évaluation de la condition physique des - cadets et élaborer des stratégies en vue d’accroître la bonne forme physique personnelle\",3,,,,,,,CX04.01,\"Participer à l'évaluation de la condition physique des cadets et élaborer des stratégies en vue d'accroître la bonne - forme physique personnelle\",3,,, -,,\"OREN X04 - Total des périodes d’instruction - complémentaires\",,15,,1,,,,,CX04.04,\"Participer à une présentation sur la - bonne forme physique et le mode de vie sain\",3,,,,,,,CX04.02,\"Participer à des activités qui renforcent les trois - éléments de la bonne forme physique\",3,,,,,,,CX04.02,\"Participer à des activités qui renforcent les - trois éléments de la bonne forme physique\",3,,, -X05,\"Participer à des activités - physiques\",MX05.01,Participer à des activités physiques,9,,,,,,,CX04.05,\"Assister à un événement sportif - amateur local\",3,,1,,,,,CX04.03,Participer à un cours de cuisine,3,,,,,,,CX04.03,Participer à un cours de cuisine,3,,, -,,CX05.01,Participer à des activités physiques,9,,,,,,,\"OREN X04 – Total des périodes d’instruction - obligatoires\",,9,,1,,,,,CX04.04,\"Assister à une présentation sur la bonne forme - physique et le mode de vie sain\",3,,,,,,,CX04.04,\"Assister à une présentation sur la bonne - forme physique et le mode de vie sain\",3,,, -,,CX05.02,Participer à un tournoi,9,,,,,,,\"OREN X04 – Total des périodes d’instruction - complémentaires\",,15,,,,,,,CX04.05,Assister à un événement sportif amateur local,3,,1,,,,,CX04.05,\"Assister à un événement sportif amateur - local\",3,,, -,,\"OREN X05 - Total des périodes d’instruction - obligatoires\",,9,,,,,X05,\"Participer à des activités - physiques\",MX05.01,Participer à des activités physiques,9,,,,,,,OREN X04 - Total des périodes d’instruction obligatoires,,9,,,,,,,,\"OREN X04 - Total des périodes - d’instruction obligatoires\",9,,, -,,\"OREN X05 - Total des périodes d’instruction - complémentaires\",,18,,,,,,,CX05.01,Participer à des activités physiques,9,,,,,,,\"OREN X04 - Total des périodes d’instruction - complémentaires\",,15,,,,,,,,\"OREN X04 - Total des périodes - d’instruction complémentaires\",15,,, -106,\"Tirer avec la carabine à - air comprimé des cadets\",M106.01,\"Identifier les parties et les caractéristiques - d’une carabine à air comprimé Daisy 853C\",1,,,,,,,CX05.02,Participer à un tournoi,9,,,,,X05,\"Participer à des - activités physiques\",MX05.01,Participer à des activités physiques,9,,,,,X05,Participer à des activités physiques,MX05.01,Participer à des activités physiques,9,,, -,,M106.02,\"Appliquer les mesures de sécurité au - maniement de la carabine à air comprimé des cadets\",1,,,,,,,\"OREN X05 – Total des périodes d’instruction - obligatoires\",,9,,0,,,,,CX05.01,Participer à des activités physiques,9,,,,,,,CX05.01,Participer à des activités physiques,9,,, -,,M106.03,\"Appliquer les techniques d'instruction - élémentaire de tir de précision\",2,,,,,,,\"OREN X05 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,CX05.02,Participer à un tournoi,9,,,,,,,CX05.02,Participer à un tournoi,9,,, -,,M106.04,\"Respecter les règles et les commandements - sur un champ de tir pour carabine à air comprimé\",1,,,,,206,\"Tirer avec la carabine à air - comprimé des cadets pendant une activité récréative de tir de précision\",M206.01,\"Participer à une activité récréative de - tir de précision\",3,,,,,,,OREN X05 - Total des périodes d’instruction obligatoires,,9,,,,,,,,OREN X05 - Total des périodes d’instruction obligatoires,9,,, -,,M106.05,\"Participer à une activité de familiarisation sur - le tir de précision à l'aide de la carabine à air comprimé des cadets\",3,,,,,,,C206.01,\"Pratiquer les techniques de tenue de la - carabine\",1,,,,,,,\"OREN X05 - Total des périodes d’instruction - complémentaires\",,18,,,,,,,,OREN X05 - Total des périodes d’instruction complémentaires,18,,, -,,C106.01,\"Participer à une activité récréative de tir de - précision\",3,,,,,,,C206.02,Pratiquer les techniques de visée,2,,,,,306,\"Tirer avec la - carabine à air comprimé des cadets pendant une activité récréative de tir de précision\",M306.01,Participer à une activité récréative de tir de précision,3,,3,,,406,\"Tirer avec la carabine à air comprimé des cadets pendant une activité - récréative de tir de précision\",M406.01,Participer à une activité récréative de tir de précision,3,,, -,,C106.02,\"Nettoyer et entreposer la carabine à air - comprimé des cadets\",1,,,,,,,C206.03,Pratiquer les techniques de tir,1,,,,,,,C306.01,Identifier les associations civiles de tir de précision,1,,,,,,,C406.01,Aider l'officier de sécurité de champ de tir (OSCT),1,,, -,,,OREN 106 - Total des périodes d’instruction obligatoires,8,,0,,,,,C106.01,\"Participer à une activité récréative de - tir de précision avec la carabine à air comprimé\",6,,,,,,,C306.02,Corriger l’erreur de tir,2,,,,,,,C406.02,Marquer les cibles de tir de précision,1,,, -,,,OREN 106 - Total des périodes d’instruction complémentaires,4,,0,,,,,\"OREN 206 – Total des périodes d’instruction - obligatoires\",,3,,0,,,,,C306.03,\"Tirer avec la carabine à air comprimé des cadets en - position debout\",2,,,,,,,C306.01,Identifier les associations civiles de tir de précision,1,,, -,,M107.01,Discuter de la première année de l'instruction,1,,,,,,,\"OREN 206 – Total des périodes d’instruction - complémentaires\",,10,,,,,,,C206.01,Pratiquer les techniques de tenue de la carabine,1,,,,,,,C306.02,Corriger l'erreur de tir,2,,, -,,M107.02,\"Identifier les grades des cadets de l'Air et des - officiers de l'ARC\",1,,1,,,207,\"Servir dans un escadron de - cadets de l’Air\",M207.01,\"Identifier les occasions d'instruction du - niveau de compétence deux\",1,,,,,,,C206.02,Pratiquer les techniques de visée,2,,,,,,,C306.03,Adopter la position debout avec la carabine à air comprimé des cadets,2,,, -107,\"Servir dans un escadron - de cadets de l’Air\",M107.03,\"Respecter les règles et les procédures de - salutation\",1,,,,,,,M207.02,\"Reconnaître les aspects historiques - des Cadets de l’Aviation royale du Canada (CARC)\",1,,1,,,,,C206.03,Pratiquer les techniques de tir,1,,,,,,,C106.01,Participer à une activité récréative de tir de précision,6,,, -,,M107.04,\"Énoncer les objectifs et la devise du - programme des cadets de l’Air\",1,,,,,,,M207.03,\"Reconnaître les rôles et - responsabilités du répondant local\",1,,,,,,,C106.01,Participer à une activité récréative de tir de précision,6,,,,,,,,OREN 406 - Total des périodes d’instruction obligatoires,3,,, -,,M107.05,Porter l'uniforme de cadet de l'Air,2,,,,,,,M207.04,\"Identifier les occasions d'instruction de - deuxième année du CIEC\",1,,,,,,,OREN 306 - Total des périodes d’instruction obligatoires,,3,,,,,,,,OREN 406 - Total des périodes d’instruction complémentaires,13,,, -,,M107.06,Discuter des occasions d’instruction d’été,1,,1,,,,,C207.01,\"Identifier la structure des grades - des cadets de la Marine Royale canadienne et des cadets royaux de l'Armée canadienne\",1,,,,,,,OREN 306 - Total des périodes d’instruction complémentaires,,15,,,,,407,Servir dans un escadron de cadets de l’Air,M407.01,Discuter des occasions d'instruction du niveau de compétence quatre,1,,, -,,C107.01,Entretenir l’uniforme de cadet de l’air,2,,,,,,,C207.02,\"Visiter un corps de cadets de la Marine - royale canadienne / corps de cadets royaux de l'Armée canadienne ou un escadron de cadets de l’Air\",3,,,,,307,\"Servir dans un - escadron de cadets de l’Air\",M307.01,\"Identifier les occasions d’instruction du niveau de - compétence trois\",1,,,,,,,M407.02,\"Discuter des occasions d’instruction de quatrième année au Centre d’instruction - d’été des cadets (CIEC)\",1,,, -,,C107.02,Identifier la structure des grades MR de l'ARC,1,,,,,,,C207.03,Décrire l'unité d'affiliation,1,,,,,,,M307.02,\"Identifier les occasions d’instruction de troisième - année du CIEC\",1,,,,,,,C407.01,Se préparer pour un conseil de mérite,3,,, -,,C107.03,Visiter l'escadron,1,,,,,,,C207.04,\"Participer à une visite de l'unité - d'affiliation\",3,,,,,,,M307.03,\"Reconnaître le partenariat entre la Ligue des cadets - de l’Air du Canada et le ministère de la Défense nationale\",1,,1,,,,,C407.02,\"Décrire la procédure de demande pour participer aux cours et aux échanges - nationaux\",1,,, -,,C107.04,\"Participer à une activité relative à l'histoire de - l’escadron\",2,,,,,,,C107.04,\"Participer à une activité relative à - l'histoire de l’escadron\",2,,,,,,,C307.01,\"Participer à une présentation donnée par un - conférencier invité d’une Unité régionale de soutien aux cadets\",2,,,,,,,C307.01,\"Participer à une présentation donnée par - un conférencier invité d'une Unité régionale de soutien aux cadets (URSC)\",2,,, -,,,OREN 106 - Total des périodes d’instruction obligatoires,7,,2,,,,,\"OREN 207 – Total des périodes d’instruction - obligatoires\",,4,,1,,,,,C307.02,\"Participer à une présentation donnée par l’officier de - liaison – cadets\",2,,,,,,,C307.02,\"Participer à une présentation donnée par - l’officier de liaison des cadets (OLC)\",2,,, -,,,OREN 106 - Total des périodes d’instruction complémentaires,6,,0,,,,,\"OREN 207 – Total des périodes d’instruction - complémentaires\",,10,,,,,,,C307.03,\"Participer à une présentation donnée par un - conférencier invité de la Ligue des cadets de l’Air du Canada\",2,,,,,,,C307.03,\"Participer à une présentation donnée par - un conférencier invité de la Ligue des cadets de l'Air du Canada (LCAC)\",2,,, -,,M108.01,\"Adopter les positions garde-à-vous, en place - repos et repos\",1,,1,,,208,\"Exécuter l’exercice militaire - en tant que membre d’une escouade\",M208.01,\"Tourner à gauche et à droite en - marchant\",2,,1,,,,,OREN 307 - Total des périodes d’instruction obligatoires,,3,,,,,,,C307.04,\"Identifier les procédures de demande de bourse de pilotage de planeur et de bourse - de pilotage d'avion\",2,,, -,,M108.02,Exécuter un salut à la halte sans armes,1,,,,,,,M208.02,Former une file indienne de la halte,1,,1,,,,,OREN 307 - Total des périodes d’instruction complémentaires,,6,,,,,,,C307.05,Participer à une présentation sur le programme du Prix du Duc d'Édimbourg,1,,, -,,M108.03,Tourner à la halte,1,,,,,,,C208.01,\"S'exercer à la prise d'armes dans le - cadre d'une revue\",2,,,,,308,\"Diriger une - escouade avant un rassemblement\",M308.01,Préparer une escouade pour le rassemblement,3,,2,,,,,,OREN 407 - Total des périodes d’instruction obligatoires,2,,, -,,M108.04,\"Exécuter les mouvements pour resserrer les - rangs vers la droite et vers la gauche\",1,,,,,,,C208.02,\"Exécuter l’exercice militaire avec des - armes\",8,,,,,,,M308.02,Donner des commandements,1,,1,,,,,,OREN 407 - Total des périodes d’instruction complémentaires,13,,, -108,\"Exécuter les - mouvements d'exercice militaire dans le cadre d'une revue annuelle\",M108.05,Exécuter des pas vers l'avant et vers l'arrière,1,,,,,,,C108.01,\"Exécuter des mouvements d’exercice - militaire supplémentaires\",6,,,,,,,COREN de l’OREN 308,,0,,,,,408,Commander une section lors d’un rassemblement,M408.01,Discuter de la façon de commander une section lors d’un rassemblement,1,,, -,,M108.06,\"Exécuter les mouvements requis pour - l'alignement par la droite\",1,,1,,,,,\"OREN 208 – Total des périodes d’instruction - obligatoires\",,3,,,,,,,C308.01,Exécuter un exercice militaire relatif aux drapeaux,4,,,,,,,M408.02,Décrire la séquence d’un rassemblement,1,,, -,,M108.07,\"Exécuter les mouvements pour ouvrir et fermer - les rangs\",1,,,,,,,\"OREN 208 – Total des périodes d’instruction - complémentaires\",,16,,,,,,,C308.02,Donner des commandements,2,,,,,,,M408.03,Commander une escouade,1,,, -,,M108.08,Marche et halte au pas cadencé,1,,1,,,211,\"Participer à des activités - récréatives de biathlon d’été\",C211.01,Identifier les occasions de biathlon civil,1,,,,,,,C208.01,\"S’exercer à l’exercice de prise d’armes dans le - cadre d’une revue\",2,,,,,,,M408.04,Inspecter un cadet lors d'un rassemblement,1,,, -,,M108.09,\"Exécuter les mouvements pour avancer et - s'arrêter au pas cadencé en marquant le pas\",1,,1,,,,,C211.02,Courir sur un terrain accidenté,1,,,,,,,C208.02,Exécuter l’exercice militaire avec des armes,8,,,,,,,COREN de l'OREN 408,,0,,, -,,M108.10,Exécuter un salut à la marche,1,,,,,,,C211.03,\"Tirer avec la carabine à air comprimé - des cadets en se servant d’une bretelle, après une activité physique\",1,,,,,,,OREN 308 - Total des périodes d’instruction obligatoires,,4,,,,,,,C408.01,Discuter de l’histoire de l’exercice militaire,1,,, -,,M108.11,\"Exécuter un salut dans une escouade à la - marche\",1,,,,,,,C211.04,\"Participer à une activité compétitive de - biathlon d'été\",6,,,,,,,OREN 308 - Total des périodes d’instruction complémentaires,,16,,,,,,,C408.02,Observer une reconstitution historique de l’exercice militaire,3,,, -,,M108.12,\"Exécuter les mouvements d'exercice militaire - dans le cadre d'une revue annuelle\",3,,,,,,,\"OREN 211 – Total des périodes d’instruction - complémentaires\",,9,,,,,309,\"Enseigner une - leçon\",M309.01,Expliquer les principes d’instruction,2,,2,,,,,C308.01,Exécuter un exercice militaire avec drapeaux,6,,, -,,C108.01,\"Exécuter des mouvements d’exercice militaire - supplémentaires\",6,,1,,,X20,\"Participer à des activités de - familiarisation des FAC\",MX20.01A,Participer à une activité des FAC,-,,,,,,,M309.02,Identifier les méthodes d’instruction,2,,2,,,,,C308.02,Donner des commandements,2,,, -,,C108.02,Participer à une compétition d’exercice militaire,3,,,,,,,MX20.01B,\"Participer à une visite de familiarisation - des FAC\",-,,,,,,,M309.03,Décrire les techniques de communication efficace,1,,1,,,,,C208.01,S'exercer à l'exercice de prise d'armes dans le cadre d'une revue,2,,, -,,\"OREN 108 - Total des périodes d’instruction - obligatoires\",,14,,4,,,,,MX20.01C,Tirer avec le fusil C7,-,,,,,,,M309.04,Décrire les techniques de question,1,,,,,,,C208.02,Exécuter un exercice militaire avec armes,8,,, -,,\"OREN 108 - Total des périodes d’instruction - complémentaires\",,9,,1,,,,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,M309.05,Choisir les aides didactiques appropriées,2,,2,,,,,,OREN 408 - Total des périodes d’instruction obligatoires,4,,, -111,\"Participer à des activités - récréatives de biathlon d’été\",C111.01,\"Participer à une séance d’information sur le - biathlon\",1,,,,,,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,M309.06,Planifier une leçon,2,,2,,,,,,OREN 408 - Total des périodes d’instruction complémentaires,22,,, -,,C111.02,Courir des sprints courts,1,,,,,,,MX20.01F,\"Assister à une cérémonie - commémorative des FAC\",-,,,,,,,M309.07,Enseigner une leçon de 15 minutes,3,,2,,,409,Enseigner une leçon,M409.01,Identifier les méthodes d’instruction,2,,, -,,C111.03,\"Simuler un tir avec la carabine à air comprimé - des cadets après une activité physique\",1,,,,,,,MX20.01G,\"Participer à des activités relatives aux - vidéos des FAC\",-,,,,,,,309 PC,,0,,,,,,,M409.02,\"Identifier les éléments d'un environnement - d'apprentissage positif\",2,,, -,,C111.04,\"Participer à une activité récréative de biathlon - d'été\",6,,,,,,,MX20.01H,\"Participer à des ateliers - d'apprentissage des FAC\",-,,,,,,,C309.01,Donner un exposé oral d’une minute,2,,2,,,,,M409.03,Décrire les besoins de l’apprenant,2,,, -,,\"OREN 111 - Total des périodes d’instruction - complémentaires\",,9,,0,,,,,CX20.01,\"Participer à des activités de - familiarisation des FAC\",18,,,,,,,C309.02,Planifier une leçon,2,,,,,,,M409.04,Expliquer l’évaluation,1,,, -X20,\"Participer à des activités - de familiarisation des Forces armées canadiennes (FAC)\",MX20.01A,Participer à une activité des FAC,-,,,,,,,\"OREN X20 – Total des périodes d’instruction - obligatoires\",,6,,,,,,,C309.03,Enseigner une leçon de 15 minutes,3,,2,,,,,M409.05,Enseigner une leçon de 30 minutes,3,,, -,,MX20.01B,\"Participer à une visite de familiarisation des - FAC\",-,,,,,,,\"OREN X20 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,C309.04,\"Identifier les formations pour l’instruction d’exercice - militaire\",1,,,,,,,\"COREN de - l'OREN 409\",,0,,, -,,MX20.01C,Tirer avec le fusil C7,-,,,,,230,\"Discuter de l'histoire de - l'aviation canadienne\",M230.01,\"Discuter des aéronefs pilotés pendant - les Première et Seconde Guerres mondiales\",1,,1,,,,,C309.05,Planifier une leçon d’exercice militaire,2,,,,,,,C409.01,Planifier une leçon,2,,, -,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,M230.02,\"Discuter des événements qui ont - marqué l'histoire militaire canadienne du 20esiècle\",1,,1,,,,,C309.06,\"Enseigner une leçon d’exercice militaire de - 15 minutes\",3,,,,,,,C409.02,Enseigner une leçon de 30 minutes,3,,, -,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,C230.01,\"Participer à une présentation donnée - par un membre du bureau des conférenciers du Projet Mémoire\",2,,,,,,,OREN 309 - Total des périodes d’instruction obligatoires,,13,,,,,,,C409.03,Agir à titre d’instructeur adjoint,3,,, -,,MX20.01F,\"Assister à une cérémonie commémorative des - FAC\",-,,,,,,,C230.02,Visiter un musée d’aviation de la région,3,,,,,,,OREN 309 - Total des périodes d’instruction complémentaires,,13,,,,,,,C409.04,\"Participer à un atelier de planification de - leçon créative\",3,,, -,,MX20.01G,\"Participer à des activités relatives aux vidéos - des FAC\",-,,,,,,,C230.03,\"Discuter des événements qui - ont marqué l'histoire de l'aviation canadienne\",1,,,,,311,\"Participer à une - activité récréative de biathlon d’été\",C311.01,\"Pratiquer la visée et le tir à la carabine à air - comprimé des cadets après une activité physique\",3,,,,,,,C409.05,\"Agir à titre d’instructeur adjoint d’exercice - militaire\",3,,, -,,MX20.01H,\"Participer à des ateliers d'apprentissage des - FAC\",-,,,,,,,C130.03,\"Visionner la vidéo intitulée « Sur des - ailes canadiennes »\",8,,1,,,,,C311.02,Participer à une activité récréative de biathlon d’été,6,,,,,,,C409.06,\"Enseigner une leçon d'exercice militaire de - 30 minutes\",3,,, -,,CX20.01,\"Participer à des activités de familiarisation des - FAC\",18,,,,,,,\"OREN 230 – Total des périodes d’instruction - obligatoires\",,2,,,,,,,C211.01,Identifier les occasions de biathlon civil,1,,,,,,,C309.04,\"Identifier les formations pour l'instruction - d'exercice militaire\",1,,, -,,\"OREN X20 - Total des périodes d'instruction - obligatoires\",,6,,4,,,,,\"OREN 230 – Total des périodes d’instruction - complémentaires\",,14,,,,,,,C211.02,Courir sur un terrain accidenté,1,,,,,,,C309.05,Planifier une leçon d'exercice militaire,2,,, -,,\"OREN X20 - Total des périodes d'instruction - complémentaires\",,18,,0,,,231,Expliquer les principes de vol,M231.01,\"Identifier les quatre forces qui agissent - sur un aéronef\",2,,2,,,,,C211.03,\"Tirer avec la carabine à air comprimé des cadets - en se servant d’une bretelle, après une activité physique\",1,,,,,,,C309.06,Enseigner une leçon d'exercice militaire de 15 minutes,3,,, -121,\"Participer à des activités - de familiarisation avec les communautés canadiennes - de l'aviation, de l'aérospatiale et des activités d’opérations d’aérodrome\",M121.01,\"Discuter des occasions offertes au sein de - l’aviation\",1,,1,,,,,M231.02,\"Décrire la façon dont la portance se - développe sur une voilure d'aéronef\",2,,2,,,,,C211.04,Participer à une activité compétitive de biathlon d’été,6,,,,,,,,OREN 409 - Total des périodes d’instruction obligatoires,10,,, -,,C121.01,\"Participer à une présentation donnée par - un membre de l'Aviation canadienne, de l'aérospatiale ou du personnel des opérations d'aérodrome\",8,,,,,,,M231.03,\"Décrire les types de traînée qui - agissent sur un aéronef\",2,,,,,,,C111.01,Participer à une séance d’information sur le biathlon,1,,,,,,,,OREN 409 - Total des périodes d’instruction complémentaires,23,,, -,,\"OREN 121 - Total des périodes d’instruction - obligatoires\",,1,,1,,,,,M231.04,\"Décrire les mouvements axiaux d'un - aéronef\",1,,,,,,,C111.02,Courir des sprints courts,1,,,,,311,Participer à une activité récréative de biathlon d'été,C311.01,Pratiquer la visée et le tir à la carabine à air comprimé des cadets après une activité physique,3,,, -129,\"Communiquer au moyen - de l’alphabet phonétique et des chiffres\",M129.01,Réciter l’alphabet et les chiffres phonétiques,1,,,,,,,M231.05,Décrire les gouvernes d'un aéronef,2,,,,,,,C111.03,\"Tirer avec la carabine à air comprimé des cadets - après une activité physique\",1,,,,,,,C311.02,Participer à une activité récréative de biathlon d'été,6,,, -,,\"OREN 129 - Total des périodes d’instruction - obligatoires\",,1,,0,,,,,C231.01,\"Faire fonctionner une voilure - expérimentale\",2,,,,,,,C111.04,Participer à une activité récréative de biathlon d’été,6,,,,,,,C211.01,Identifier les occasions de biathlon civil,1,,, -,,\"OREN 129 - Total des périodes d’instruction - complémentaires\",,0,,,,,,,C231.02,\"Faire voler un planeur Colditz en - papier\",2,,,,,,,OREN 311 - Total des périodes d’instruction obligatoires,,0,,,,,,,C211.02,Courir sur un terrain accidenté,1,,, -130,\"Participer à des activités - d’aviation\",M130.01,\"Identifier les avions militaires, civils et ceux - utilisés par les cadets\",2,,,,,,,C231.03,Visiter une école de pilotage,3,,,,,,,OREN 311 - Total des périodes d’instruction complémentaires,,27,,,,,,,C211.03,\"Tirer avec la carabine à air comprimé des cadets en se servant d'une bretelle, après une activité physique\",1,,, -,,M130.02,Décrire les composants principaux d’un avion,1,,1,,,,,C231.04,\"Participer à une présentation donnée - par un conférencier invité du milieu de l'aviation local\",2,,,,,X20,\"Participer à - des activités de familiarisation des Forces armées canadiennes (FAC)\",MX20.01A,Participer à une activité des FAC,-,,,,,,,C211.04,Participer à une activité compétitive de biathlon d'été,6,,, -,,M130.03,Assembler un modèle réduit d'avion,2,,,,,,,C231.05,Visiter un simulateur de vol,3,,,,,,,MX20.01B,Participer à une visite de familiarisation des FAC,-,,,,,,,C111.01,Participer à une séance d’information sur le biathlon,1,,, -,,M130.04,\"Visionner la vidéo intitulée « Sur des ailes - canadiennes»\",1,,,,,,,C231.06,\"Assister à un spectacle aérien de la - région\",6,,,,,,,MX20.01C,Tirer avec le fusil C7,-,,,,,,,C111.02,Courir des sprints courts,1,,, -,,C130.01,Participer à l'inspection extérieure d’un aéronef,1,,,,,,,\"OREN 231 – Total des périodes d’instruction - obligatoires\",,9,,,,,,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,C111.03,Tirer avec la carabine à air comprimé des cadets après une activité physique,1,,, -,,C130.02,Identifier des avions internationaux,1,,,,,,,\"OREN 231 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,C111.04,Participer à une activité récréative de biathlon d'été,6,,, -,,C130.03,\"Visionner la vidéo intitulée « Sur des ailes - canadiennes»\",8,,,,,232,\"Identifier les caractéristiques - d'un aéronef à moteur à pistons\",M232.01,\"Identifier les types de moteurs - d'aéronef\",1,,,,,,,MX20.01F,Assister à une cérémonie commémorative des FAC,-,,,,,,,,OREN 311 - Total des périodes d’instruction obligatoires,0,,, -,,C130.04,Visiter un musée d’aviation de la région,3,,,,,,,M232.02,\"Identifier les composants des moteurs - à combustion interne et moteur à pistons\",2,,,,,,,MX20.01G,\"Participer à des activités relatives aux vidéos des - FAC\",-,,,,,,,,OREN 311 - Total des périodes d’instruction complémentaires,27,,, -,,C130.05,Assister à un spectacle aérien local,6,,,,,,,M232.03,\"Expliquer les cycles d'un moteur à - pistons à quatre temps\",2,,,,,,,MX20.01H,Participer à des ateliers d’apprentissage des FAC,-,,,,,X20,Participer à des activités de familiarisation des Forces armées canadiennes (FAC),MX20.01A,Participer à une activité des FAC,-,,, -,,\"OREN 130 - Total des périodes d’instruction - obligatoires\",,6,,1,,,,,M232.04,\"Reconnaître les fonctions de l'huile - dans un moteur à pistons à quatre temps\",1,,,,,,,CX20.01,Participer à des activités de familiarisation des FAC,18,,,,,,,MX20.01B,\"Participer à une visite de familiarisation des - FAC\",-,,, -,,\"OREN 130 - Total des périodes d’instruction - complémentaires\",,19,,0,,,,,C232.01,\"Identifier les caractéristiques des - turbines à gaz\",2,,,,,,,OREN X20 - Total des périodes d’instruction obligatoires,,6,,,,,,,MX20.01C,Tirer avec le fusil C7,-,,, -140,\"Participer à des activités - aérospatiales\",M140.01,Lancer une fusée à eau,3,,3,,,,,C232.02,\"Identifier les caractéristiques des - moteurs-fusées\",2,,,,,,,\"OREN X20 - Total des périodes d’instruction - complémentaires\",,18,,,,,,,MX20.01D,Participer à un dîner régimentaire,4,,, -,,C140.01,Lancer une fusée en mousse,2,,,,,,,C232.03,\"Identifier les caractéristiques des - moteurs d'hélicoptère\",2,,,,,331,\"Décrire les - principes de vol\",M331.01,Décrire la stabilité d’un aéronef,2,,2,,,,,MX20.01E,Assister à une présentation des FAC,-,,, -,,C140.02,Discuter des cycles de sommeil dans l'espace,2,,,,,,,\"OREN 232 – Total des périodes d’instruction - obligatoires\",,6,,,,,,,C331.01,Réviser les principes de vol,1,,,,,,,MX20.01F,\"Assister à une cérémonie commémorative - des FAC\",-,,, -,,\"OREN 140 - Total des périodes d’instruction - obligatoires\",,3,,3,,,,,\"OREN 232 – Total des périodes d’instruction - complémentaires\",,6,,,,,,,C331.02,Lire les instruments anémométriques,2,,,,,,,MX20.01G,\"Participer à des activités relatives aux - vidéos des FAC\",-,,, -,,\"OREN 140 - Total des périodes d’instruction - complémentaires\",,4,,0,,,240,\"Participer à des activités - aérospatiales\",M240.01,\"Explorer les avancées technologiques - actuelles en aérospatiale\",1,,,,,,,C331.03,\"Identifier les aspects de l’aérodynamique d’un - hélicoptère\",1,,,,,,,MX20.01H,\"Participer à des ateliers d'apprentissage - des FAC\",-,,, -160,\"Participer à des - activités d’opérations d’aérodrome\",M160.01,Identifier les parties principales d’un aérodrome,1,,,,,,,M240.02,\"Inventer un objet comportant une - technologie spatiale\",2,,,,,,,C331.04,\"Faire la démonstration des assiettes et des - mouvements dans un simulateur de vol\",3,,,,,,,CX20.01,\"Participer à des activités de familiarisation - des FAC\",18,,, -,,M160.02,Identifier les caractéristiques d’une piste,1,,,,,,,M240.03,\"Participer à une mise en situation de - survie dans l'espace\",1,,,,,,,C331.05,\"Participer à une présentation donnée par un - conférencier invité du milieu de l’aviation local\",2,,,,,,,,\"OREN X20 - Total des périodes - d’instruction obligatoires\",6,,, -,,M160.03,Fabriquer un modèle réduit d'aérodrome,2,,,,,,,C240.01,\"Participer à une activité de - communication non verbale\",1,,,,,,,OREN 331 - Total des périodes d’instruction obligatoires,,2,,,,,,,,OREN X20 - Total des périodes d’instruction complémentaires,18,,, -,,C160.01,Visiter un aérodrome local,3,,,,,,,C240.02,\"Inventer un système de communication - pour l'espace\",2,,,,,,,OREN 331 - Total des périodes d’instruction complémentaires,,9,,,,,429,Communiquer en utilisant les procédures radio pour les transmissions destinées à l'aviation,C429.01,Expliquer le règlement et les procédures d’opération pour les transmissions destinées à l’aviation et la délivrance de licence,1,,, -,,\"OREN 160 - Total des périodes d’instruction - obligatoires\",,4,,0,,,,,C240.03,Identifier les parties d'une fusée,1,,,,,336,\"Identifier les - conditions météorologiques\",M336.01,Décrire les propriétés de l’atmosphère,1,,1,,,,,C429.02,Communiquer en utilisant les procédures radio pour les transmissions destinées à l'aviation,1,,, -,,\"OREN 160 - Total des périodes d’instruction - complémentaires\",,3,,0,,,,,C240.04,\"Naviguer au moyen d’un système - mondial de positionnement (GPS)\",3,,,,,,,M336.02,Expliquer la formation des nuages,1,,1,,,,,C429.03,\"Décrire les longueurs d’ondes, les signaux, les licences et l’équipement radio\",1,,, -170,\"Discuter de la - construction et de la maintenance des aéronefs\",C170.01,Regarder des segments de Comment c'est fait,2,,,,,,,C240.05,\"Simuler une situation de survie dans - l'espace\",2,,,,,,,M336.03,\"Expliquer les effets de la pression d’air sur la - température\",1,,,,,,,C429.04,\"Expliquer les communications de secours, d’urgence et de sécurité\",1,,, -,,C170.02,\"Visiter des installations de maintenance - d’aviation de la région\",3,,,,,,,C240.06,\"S'orienter à l'aide des constellations - pendant un exercice d'entraînement en campagne\",1,,,,,,,M336.04,\"Expliquer les effets de l’humidité et de la - température sur les conditions météorologiques\",2,,,,,,,COREN de l’OREN 429,,2,,, -,,\"OREN 170 - Total des périodes d’instruction - obligatoires\",,0,,,,,,,\"OREN 240 – Total des périodes d’instruction - obligatoires\",,4,,,,,,,\"331/336/ - COREN de l’OREN 337\",Sujets sur l’aviation - Évaluation combinée,1,,,,,,,,OREN 429 - Total des périodes d’instruction obligatoires,0,,, -,,\"OREN 170 - Total des périodes d’instruction - complémentaires\",,5,,0,,,,,\"OREN 240 – Total des périodes d’instruction - complémentaires\",,10,,,,,,,C336.01,\"Lire un message d’observation météorologique - régulière pour l’aviation (METAR)\",2,,,,,,,,OREN 429 - Total des périodes d’instruction complémentaires,6,,, -190,\"Participer à un exercice - de survie pour équipage de vol\",M190.01,\"Emballer l’équipement personnel nécessaire - pour un exercice en campagne\",2,,2,,,260,\"Participer à des activités - d’opérations d’aérodrome\",M260.01,\"Expliquer les aspects du contrôle de la - circulation aérienne\",1,,,,,,,C336.02,Visiter une installation météorologique,3,,,,,431,Expliquer les principes de vol,M431.01,Expliquer les caractéristiques d’une voilure,1,,, -,,M190.02,\"Entretenir l’équipement personnel et avoir une - bonne hygiène en campagne\",1,,1,,,,,M260.02,\"Identifier les aspects des opérations - d'aérodrome de base\",1,,,,,,,C336.03,\"Participer à une présentation donnée par un - spécialiste des services de vol\",2,,,,,,,M431.02,Décrire les instruments de vol,2,,, -,,M190.03,Observer les politiques et procédures du site,2,,,,,,,C260.01,\"Visiter l'installation de sécurité d'un - aérodrome\",3,,,,,,,OREN 336 - Total des périodes d’instruction obligatoires,,6,,,,,,,C431.01,Expliquer les facteurs qui affectent le vol,2,,, -,,M190.04,Discuter de la psychologie de la survie,2,,,,,,,C260.02,\"Visiter une tour de contrôle de la - circulation aérienne\",3,,,,,,,OREN 336 - Total des périodes d’instruction complémentaires,,7,,,,,,,C431.02,\"Faire la démonstration des virages, des montées et des descentes dans un simulateur de vol\",3,,, -,,M190.05,Identifier les types d’abri,1,,,,,,,C260.03,\"Participer à une présentation donnée - par un employé d'aérodrome\",2,,,,,337,\"Démontrer les - compétences en navigation aérienne\",M337.01,Mesurer la distance le long d’un itinéraire,1,,,,,,,C431.03,Faire voler un aéronef radiocommandé,3,,, -,,M190.06,\"Allumer, entretenir et éteindre un feu\",3,,,,,,,C260.04,\"Effectuer le guidage des aéronefs au - sol\",1,,,,,,,M337.02,\"Déterminer une position sur une carte aéronautique - de navigation VFR (VNC)\",1,,,,,,,,OREN 431 - Total des périodes d’instruction obligatoires,3,,, -,,M190.07,\"Dresser, démonter et emballer des tentes\",3,,,,,,,C260.05,Visiter un aérodrome,3,,,,,,,C337.01,\"Faire fonctionner une radio pour les transmissions - destinées à l’aviation\",1,,,,,,,,OREN 431 - Total des périodes d’instruction complémentaires,8,,, -,,C190.01,\"Participer à une présentation donnée par un - membre d'une organisation de survie ou une communauté de recherche et sauvetage (SAR)\",2,,,,,,,\"OREN 260 – Total des périodes d’instruction - obligatoires\",,2,,,,,,,C337.03,Pratiquer des compétences en navigation aérienne,1,,,,,432,Décrire les systèmes de moteur d’avion,M432.01,Décrire les circuits carburant,1,,, -,,C190.02,Faire des nœuds et des brêlages,2,,,,,,,\"OREN 260 – Total des périodes d’instruction - complémentaires\",,18,,,,,,,OREN 337 - Total des périodes d’instruction obligatoires,,2,,,,,,,M432.02,Décrire les systèmes d’hélice,1,,, -,,C190.03,Construire un abri de style houchie,3,,,,,270,\"Discuter de la construction - et de la maintenance des aéronefs\",M270.01,\"Identifier les aspects de la construction - des aéronefs\",2,,,,,,,OREN 337 - Total des périodes d’instruction complémentaires,,2,,,,,,,M432.03,Décrire les instruments du moteur,1,,, -,,C190.04,Recueillir de l’eau potable en campagne,2,,,,,,,M270.02,\"Identifier les exigences de - maintenance des aéronefs\",2,,,,,340,\"Identifier les - aspects de l’exploration spatiale\",M340.01,Identifier des astronautes canadiens,1,,,,,,,C432.01,Décrire le circuit d’allumage et le système électrique,1,,, -,,C190.05,\"Identifier les blessures causées par - l’environnement\",1,,,,,,,M270.03,\"Discuter des occasions d'éducation - et d'emploi dans le domaine de la construction et de la maintenance d'aéronef\",2,,,,,,,M340.02,Discuter de l’histoire de l’exploration spatiale habitée,1,,,,,,,C432.02,Décrire les systèmes de suralimentation par turbocompresseur et par surpression,1,,, -,,C190.06,Respecter l’environnement en campagne,1,,,,,,,C270.01,\"Participer à une présentation - donnée par un employé du domaine de l'industrie de la construction aéronautique et de la maintenance d'aéronef\",2,,,,,,,C340.01,Identifier des astronautes canadiens,2,,,,,,,C432.03,Décrire les turbines à gaz,1,,, -,,C190.07,Identifier des habitats d'animaux et d'insectes,1,,,,,,,C270.02,\"Identifier les activités de l'Outil - d’apprentissage multimédia interactif (OAMI) du Conseil canadien de l'entretien des aéronefs (CCEA)\",1,,,,,,,C340.02,Discuter du Programme spatial canadien,1,,,,,,,,OREN 432 - Total des périodes d’instruction obligatoires,3,,, -,,\"OREN 190 - Total des périodes d’instruction - obligatoires\",,14,,3,,,,,C270.03,\"Visiter une installation de construction - ou de maintenance d’aéronefs\",3,,,,,,,C340.03,Discuter de l’exploration spatiale inhabitée,2,,,,,,,,OREN 432 - Total des périodes d’instruction complémentaires,3,,, -,,\"OREN 190 - Total des périodes d’instruction - complémentaires\",,12,,0,,,,,C270.04,\"Visionner la vidéo intitulée « World’s - Biggest Airliner: The Airbus A380 – Coming Together »\",2,,,,,,,C340.04,Décrire les éléments du ciel nocturne,1,,,,,436,Expliquer les aspects de météorologie,M436.01,Expliquer les vents,1,,, -,,,,,,,,,,,\"OREN 270 – Total des périodes d’instruction - obligatoires\",,6,,,,,,,C340.05,Simuler la vie dans l’espace,3,,,,,,,M436.02,Décrire les masses et les fronts d’air,3,,, -,,,,,,,,,,,\"OREN 270 – Total des périodes d’instruction - complémentaires\",,8,,,,,,,C340.06,Lancer une fusée à eau,3,,,,,,,C436.01,Expliquer le brouillard,1,,, -,,,,,,,,,290,\"Participer à un exercice - d'entraînement en campagne\",M290.01,\"Préparer, allumer, entretenir et éteindre - un feu de signalement\",2,,,,,,,C340.07,\"Identifier les composants du système mondial de - positionnement (GPS)\",2,,,,,,,C436.02,Décrire les conditions météorologiques violentes,1,,, -,,,,,,,,,,,M290.02,Construire un abri de style appentis,3,,,,,,,C340.08,\"Décrire les aspects de la Station spatiale - internationale (SSI)\",1,,,,,,,C436.03,Analyser les renseignements météorologiques,3,,, -,,,,,,,,,,,M290.03,Construire un collet simple,2,,,,,,,C340.09,\"Participer à une présentation donnée par un - conférencier invité du milieu de l’astronomie ou de l’aérospatiale\",2,,,,,,,,OREN 436 - Total des périodes d’instruction obligatoires,4,,, -,,,,,,,,,,,M290.04,Fabriquer des signaux sol-air,2,,,,,,,C340.10,Identifier les programmes d’astronomie en ligne,1,,,,,,,,OREN 436 - Total des périodes d’instruction complémentaires,5,,, -,,,,,,,,,,,M290.05,\"Identifier les techniques de randonnée - pédestre\",2,,,,,,,OREN 340 - Total des périodes d’instruction obligatoires,,2,,,,,437,Expliquer les aspects de la navigation aérienne,M437.01,Définir les termes de navigation aérienne,2,,, -,,,,,,,,,,,M290.06,Faire fonctionner une radio portative,1,,,,,,,OREN 340 - Total des périodes d’instruction complémentaires,,18,,,,,,,M437.02,Décrire le compas magnétique,1,,, -,,,,,,,,,,,C290.01,\"Participer à une présentation donnée - par un membre d’un organisme de survie\",2,,,,,360,\"Reconnaître - les aspects des opérations d’aérodrome\",C360.01,Identifier les types d’aérodrome,1,,,,,,,\"431 / 432 - 436 / - 437 PC\",Sujets sur l’aviation - Évaluation combinée,1,,, -,,,,,,,,,,,C290.02,\"Discuter du dépouillement et de la - cuisson des petits animaux\",1,,,,,,,C360.02,\"Expliquer les aspects du balisage lumineux d’un - aérodrome\",1,,,,,,,C437.01,Résoudre des problèmes de navigation à l’aide d’un calculateur de vol manuel,2,,, -,,,,,,,,,,,C290.03,Creuser une caverne dans la neige,3,,,,,,,C360.03,\"Fabriquer un modèle réduit d’espace aérien d’un - aérodrome\",3,,,,,,,C437.02,Utiliser une carte aéronautique de navigation VFR [règles de vol à vue] (VNC),2,,, -,,,,,,,,,,,C290.04,\"Recueillir de l’eau potable avec un - distillateur solaire\",2,,,,,,,C360.04,\"Identifier la façon dont l’équipement est utilisé à un - aérodrome\",1,,,,,,,,OREN 437 - Total des périodes d’instruction obligatoires,4,,, -,,,,,,,,,,,C290.05,Participer à une randonnée pédestre,6,,,,,,,C360.05,\"Identifier les aspects des interventions d’urgence et - de la sécurité des aérodromes\",1,,,,,,,,OREN 437 - Total des périodes d’instruction complémentaires,4,,, -,,,,,,,,,,,\"OREN 290 – Total des périodes d’instruction - obligatoires\",,12,,,,,,,C360.06,\"Expliquer les aspects des services de la circulation - aérienne (ATS)\",1,,,,,440,Discuter des structures aérospatiales,M440.01,Identifier les matériaux aérospatiaux,1,,, -,,,,,,,,,,,\"OREN 290 – Total des périodes d’instruction - complémentaires\",,14,,,,,,,OREN 360 - Total des périodes d’instruction obligatoires,,0,,,,,,,M440.02,Décrire les satellites canadiens,1,,, -,,,,,,,,,,,,,,,,,,,,OREN 360 - Total des périodes d’instruction complémentaires,,8,,,,,,,C440.01,Décrire les modèles réduits de fusées,2,,, -,,,,,,,,,,,,,,,,,,370,\"Reconnaître - les aspects de la construction - aéronautique et de la maintenance des aéronefs\",M370.01,\"Identifier les composants du circuit statique du - système Pitot\",1,,,,,,,C440.02,Lancer un petit modèle réduit de fusée,3,,, -,,,,,,,,,,,,,,,,,,,,M370.02,Identifier les avionneurs,1,,,,,,,C440.03,\"Discuter des caractéristiques des planètes - du système solaire\",2,,, -,,,,,,,,,,,,,,,,,,,,M370.03,\"Décrire les procédures d’inspection de routine des - aéronefs\",1,,,,,,,C440.04,\"Appliquer la science des matériaux de - longerons\",3,,, -,,,,,,,,,,,,,,,,,,,,C370.01,\"Identifier les tâches requises pour la maintenance - des aéronefs\",1,,,,,,,C440.05,Décrire la robotique,1,,, -,,,,,,,,,,,,,,,,,,,,C370.02,\"Décrire les matériaux utilisés pour la construction - d’aéronef\",1,,,,,,,C440.06,Utiliser des cartes du ciel,2,,, -,,,,,,,,,,,,,,,,,,,,C370.03,\"Identifier les outils électriques et l’équipement de - base utilisés pour la construction aéronautique et la maintenance des aéronefs\",1,,,,,,,C440.07,Utiliser un télescope,2,,, -,,,,,,,,,,,,,,,,,,,,C370.04,Fabriquer un modèle réduit de biplan en aluminium,12,,,,,,,C440.08,\"Regarder la vidéo intitulée BLAST! (Balloon-Borne Large Aperture Sub- Millimetre Telescope [télescope submillimétrique à grande ouverture - emporté par ballon])\",3,,, -,,,,,,,,,,,,,,,,,,,,C370.05,Visiter un projet de restauration d’aéronef,3,,,,,,,C440.09,\"Décrire le lien entre la gravité et l’espace- - temps\",2,,, -,,,,,,,,,,,,,,,,,,,,C270.01,\"Participer à une présentation donnée par - un employé de l’industrie de la construction aéronautique et de la maintenance d’avion\",2,,,,,,,C440.10,Discuter de l'énergie cinétique potentielle,1,,, -,,,,,,,,,,,,,,,,,,,,C270.03,\"Visiter une installation de construction ou de - maintenance d’aéronefs\",3,,,,,,,C440.11,\"Regarder la vidéo intitulée Einstein’s Big - Idea\",5,,, -,,,,,,,,,,,,,,,,,,,,OREN 370 - Total des périodes d’instruction obligatoires,,3,,,,,,,,OREN 440 - Total des périodes d’instruction obligatoires,2,,, -,,,,,,,,,,,,,,,,,,,,\"OREN 370 - Total des périodes d’instruction complémentaires - (max de 12)\",,23,,,,,,,,\"OREN 440 - Total des périodes d'instruction complémentaires (max de - 9)\",26,,, -,,,,,,,,,,,,,,,,,,390,\"Naviguer sur un - itinéraire à l’aide d’une carte et d’une boussole\",M390.01,Identifier les parties d’une boussole,1,,1,,,460,Décrire les occasions de carrière en opérations d’aérodrome,C460.01,Décrire les occasions de carrière en opérations d’aérodrome,1,,, -,,,,,,,,,,,,,,,,,,,,M390.02,\"Identifier les données marginales et les signes - conventionnels\",2,,,,,,,C460.02,Décrire les occasions de carrière en contrôle de la circulation aérienne (ATC),1,,, -,,,,,,,,,,,,,,,,,,,,M390.03,Déterminer des coordonnées de quadrillage (coord),2,,,,,,,C460.03,Décrire les occasions de carrière en sécurité des aéroports,1,,, -,,,,,,,,,,,,,,,,,,,,M390.04,Déterminer la distance sur une carte et sur le terrain,3,,,,,,,,OREN 460 - Total des périodes d’instruction obligatoires,0,,, -,,,,,,,,,,,,,,,,,,,,M390.05,\"Déterminer des relèvements sur une carte et sur le - terrain\",2,,,,,,,,OREN 460 - Total des périodes d’instruction complémentaires,3,,, -,,,,,,,,,,,,,,,,,,,,COREN de l’OREN 390,,4,,,,,470,Discuter des aspects de la construction aéronautique et de la maintenance des aéronefs,C470.01,Discuter des avionneurs,1,,, -,,,,,,,,,,,,,,,,,,,,C390.01,Identifier les types de cartes,1,,1,,,,,C470.02,Discuter de l'assemblage d'un aéronef,1,,, -,,,,,,,,,,,,,,,,,,,,C390.02,Interpréter les courbes de niveau,1,,,,,,,C470.03,Identifier la quincaillerie aéronautique,1,,, -,,,,,,,,,,,,,,,,,,,,C390.03,Orienter une carte par inspection,1,,,,,,,C470.04,Démonter et remonter un petit moteur,3,,, -,,,,,,,,,,,,,,,,,,,,C390.04,Orienter une carte en utilisant une boussole,1,,,,,,,,OREN 470 - Total des périodes d’instruction obligatoires,0,,, -,,,,,,,,,,,,,,,,,,,,C390.05,Calculer la déclinaison magnétique,2,,,,,,,,OREN 470 - Total des périodes d’instruction complémentaires,6,,, -,,,,,,,,,,,,,,,,,,,,C390.06,Déterminer la direction à l’aide du soleil,1,,,,,490,Participer à un exercice de survie pour équipage de vol,M490.01,Assembler une trousse de survie d'urgence,1,,, -,,,,,,,,,,,,,,,,,,,,C390.07,Déterminer la direction la nuit,1,,,,,,,M490.02,Faire fonctionner un réchaud et un fanal,3,,, -,,,,,,,,,,,,,,,,,,,,C390.08,Utiliser les techniques de marquage,1,,,,,,,M490.03,Faire des nœuds et des brêlages,2,,, -,,,,,,,,,,,,,,,,,,,,C390.09,Identifier les éléments du ciel nocturne,4,,,,,,,M490.04,\"Naviguer vers un point de cheminement à l’aide d’un récepteur du système mondial - de positionnement (GPS)\",4,,, -,,,,,,,,,,,,,,,,,,,,C390.10,\"Identifier les méthodes de préparation et de cuisson - d’un petit animal ou d’un poisson\",2,,,,,,,M490.05,\"Allumer des feux grâce à un allumage - improvisé\",4,,, -,,,,,,,,,,,,,,,,,,,,C390.11,Fabriquer des outils de campement,4,,,,,,,\"COREN de - l'OREN 490\",,0,,, -,,,,,,,,,,,,,,,,,,,,C390.12,\"Donner les premiers soins mineurs dans un - environnement de campagne\",4,,,,,,,C490.01,\"Décrire les préoccupations climatiques et - saisonnières\",1,,, -,,,,,,,,,,,,,,,,,,,,C390.13,\"Agir en tant que membre d’une équipe de recherche - et sauvetage (SAR) au sol\",4,,,,,,,C490.02,\"Improviser des outils à utiliser dans une - situation de survie\",2,,, -,,,,,,,,,,,,,,,,,,,,C390.14,\"Participer à une présentation donnée par un - conférencier invité du milieu de la recherche et sauvetage (SAR)\",2,,,,,,,C490.03,Déplacer un blessé vers un abri,3,,, -,,,,,,,,,,,,,,,,,,,,C290.04,Recueillir de l’eau potable avec un distillateur solaire,2,,,,,,,C490.04,Utiliser les outils de façon sécuritaire,3,,, -,,,,,,,,,,,,,,,,,,,,OREN 390 - Total des périodes d’instruction obligatoires,,14,,,,,,,C490.05,\"Naviguer sur un itinéraire à l'aide d'une - carte et d'une boussole\",4,,, -,,,,,,,,,,,,,,,,,,,,\"OREN 390 - Total des périodes d’instruction complémentaires - (max de 18)\",,31,,,,,,,C490.06,\"Monter, démonter et emballer des tentes\",4,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C490.07,\"Construire un houchie ou un abri de style - appentis\",3,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OREN 490 - Total des périodes d’instruction obligatoires,14,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OREN 490 - Total des périodes d’instruction complémentaires,20,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,S.O.,Participer à une revue annuelle (ACR),,,3,,,"; + $file = fopen(\request()->file('file'),'r'); + $data = fread($file,filesize(\request()->file('file'))); + fclose($file); + $data = str_replace(["\r","\n"],'',$data); + // Detection et nettoyage des ORENs + preg_match_all('/[MX\d][X\d]\d+,[^,]+/',$data,$matches_orens); + foreach ($matches_orens[0] as $key => $oren) { + $oren = str_replace('"','',$oren); + $matches_orens[0][$key] = $oren; + } + $orens_pass_2 = collect($matches_orens[0])->unique(); + $orens = []; + foreach ($orens_pass_2 as $oren) + { + $foo = explode(',',$oren); + $orens[$foo[0]] = $foo[1]; + } + + // Detection et nettoyage des OCOMs + preg_match_all('/[MC][X\d]\d{2}\.\d{2}\w?,[^,]+,\d/',$data,$matches_ocom); + foreach ($matches_ocom[0] as $key => $ocom) { + $ocom = str_replace('"','',$ocom); + $matches_ocom[0][$key] = $ocom; + } + $ocoms_pass_2 = collect($matches_ocom[0])->unique(); + + foreach ($ocoms_pass_2 as $ocom_pass_2) + { + $foo = explode(',',$ocom_pass_2); + + if (OCOM::findByOCOM($foo[0]) == null) + { + preg_match('/[X\d]\d{2}/',$ocom_pass_2,$matches); + $oren = $matches[0]; + $complementary = false; + if ($foo[0][0] == "C") + { + $complementary = true; + } + $nocom = new OCOM(); + $nocom->ocom = $foo[0]; + $nocom->objectif_competence = $foo[1]; + $nocom->nbPeriode = $foo[2]; + $nocom->objectif_rendement = $orens[$oren]; + $nocom->oren = $oren; + $nocom->complementary = $complementary; + $nocom->course_id = ''; + + $nocom->save(); + } + } + + $this->updateOCOMDB(); + return redirect('/admin/ocom')->with('success','Base de donnée des cours générée avec succès!'); + } + + public function g() + { OCOM::truncate(); $matches = []; @@ -707,8 +197,6 @@ X20,\"Participer à des activités { $o->save(); } - - dd($ocoms); } /** diff --git a/app/Http/Controllers/ScheduleController.php b/app/Http/Controllers/ScheduleController.php index dcb0ea49..e4a2c70c 100644 --- a/app/Http/Controllers/ScheduleController.php +++ b/app/Http/Controllers/ScheduleController.php @@ -89,8 +89,8 @@ class ScheduleController extends Controller $event = [ 'title' => $schedule->data['event_name'], - 'start' => $schedule->date.'T'.$schedule->data['event_begin_time'], - 'end' => $schedule->date.'T'.$schedule->data['event_end_time'], + 'start' => date('c',strtotime($schedule->date.'T'.$schedule->data['event_begin_time'])), + 'end' => date('c',strtotime($schedule->date.'T'.$schedule->data['event_end_time'])), 'color' => $color, 'source' => 'schedule', 'id' => $schedule->id diff --git a/app/Http/Middleware/CheckFilePerm.php b/app/Http/Middleware/CheckFilePerm.php index d4234769..9ad99e72 100644 --- a/app/Http/Middleware/CheckFilePerm.php +++ b/app/Http/Middleware/CheckFilePerm.php @@ -2,6 +2,7 @@ namespace App\Http\Middleware; +use App\User; use Closure; use \App\GoogleDriveFile; use \App\Config; @@ -19,44 +20,64 @@ class CheckFilePerm { if (GoogleDriveFile::checkConfig() && Config::getData('is_Google_Drive_enabled') == 'true') { - if ($type == 'file') + // Get folder + if (isset($request->folder)) + { + $folder = $request->folder; + } + else + { + $folder = $request->d; + } + $dir = GoogleDriveFile::find($folder); + + // Check if $folder is root directory or $dir is null + if ($folder == "" || $dir == null) { - $dir = GoogleDriveFile::find($request->d); - if ($dir != null) - { - if (\Auth::check()) - { - if ($dir->canUser(\Auth::user(),$permission) == false) - { - clog('navigate','danger','Vous n\'avez pas la permission d\'accéder a ce fichier',\Auth::user()->id); - return redirect('/admin')->with('error','Vous n\'avez pas la permission d\'accéder a ce fichier'); - } - } - else - { - if (strpos($dir->getPermission('rank.0'),$permission) === false) - { - clog('navigate','danger','Un utilisateur non authentifié a tenter de télécharger un fichier privé','0'); - abort(401,'Vous n\'avez pas la permission d\'accéder a ce fichier'); - } - } - return $next($request); - } if (\Auth::check()) { - if (\Auth::user()->permission('config_edit')) + if ($permission == 'r') { return $next($request); } + else + { + if (\Auth::user()->p('file_manage') === 1) + { + return $next($request); + } + } } - abort(401,'Vous n\'avez pas la permission d\'accéder a ce fichier'); + abort(401,'Pas connecter'); + } + + // Check for specific folder permission + if ($dir != null) + { + if (\Auth::check()) + { + if (!$dir->canAuthUser($permission)) + { + clog('navigate','danger','Vous n\'avez pas la permission d\'accéder',\Auth::user()->id); + return redirect('/admin')->with('error','Vous n\'avez pas la permission d\'accéder'); + } + } + else + { + if (strpos($dir->getPermission('rank.0'),$permission) === false) + { + clog('navigate','danger','Un utilisateur non authentifié tente d\'accéder a un dossier privé','0'); + abort(401,'Vous n\'avez pas la permission d\'accéder'); + } + } + return $next($request); } - abort(500); } else { clog('navigate','danger','Google Drive n\'est pas activé ou les identifiants sont incorrect',\Auth::user()->id); return redirect('/admin')->with('error','Google Drive n\'est pas activé ou les identifiants sont incorrect'); } + return abort(500,'Wow... Aucune idée comment ce qui viens d\'arriver'); } } diff --git a/app/OCOM.php b/app/OCOM.php index 60030651..93b8fe53 100644 --- a/app/OCOM.php +++ b/app/OCOM.php @@ -75,4 +75,9 @@ class OCOM extends Model } return $result; } + + public static function findByOCOM($ocom) + { + return OCOM::where('ocom','=',$ocom)->first(); + } } diff --git a/public/assets/fullcalendar/core/locales/fr-ca.js b/public/assets/fullcalendar/core/locales/fr-ca.js index d554c140..9474854f 100644 --- a/public/assets/fullcalendar/core/locales/fr-ca.js +++ b/public/assets/fullcalendar/core/locales/fr-ca.js @@ -14,7 +14,7 @@ month: "Mois", week: "Semaine", day: "Jour", - list: "Mon planning" + list: "Liste" }, weekLabel: "Sem.", allDayHtml: "Toute la
journée", diff --git a/public/css/custom.css b/public/css/custom.css index ac524cb8..4ca0c16e 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -1832,4 +1832,8 @@ h2 { .progress-bar-top { margin-bottom: -4px; border-radius: 6px 6px 0px 0px; +} + +.no-hover:hover { + background-color: initial; } \ No newline at end of file diff --git a/public/js/calendar.js b/public/js/calendar.js index 5e5b4aeb..a1753a70 100644 --- a/public/js/calendar.js +++ b/public/js/calendar.js @@ -3,17 +3,26 @@ function initFullCalendar(authToken) { var calendarEl = document.getElementById('fullCalendar'); var calendar = new FullCalendar.Calendar(calendarEl, { - plugins: ['dayGrid','interaction'], + plugins: ['dayGrid','interaction','list'], locale: 'fr-ca', header: { left: 'title', - center: '', + center: 'dayGridMonth,listWeek', right: 'prev,next' }, events: '/api/schedule/events', eventRender: function(event, element) { - if(event.icon){ - element.find(".fc-title").prepend(""); + if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth') + { + let i = document.createElement('i'); + i.className = event.event.extendedProps.icon+' mx-1'; + event.el.querySelector('.fc-content').prepend(i); + } + else if(event.event.extendedProps.icon && event.view.type == 'listWeek') + { + let i = document.createElement('i'); + i.className = event.event.extendedProps.icon+' mr-1'; + event.el.querySelector('.fc-list-item-title').prepend(i); } }, eventClick: function (info) { diff --git a/public/js/plugins/drive-explorer.js b/public/js/plugins/drive-explorer.js index b362f2ec..59c89a63 100644 --- a/public/js/plugins/drive-explorer.js +++ b/public/js/plugins/drive-explorer.js @@ -68,8 +68,6 @@ function loadFolder(folder) { } else { - console.log('wtf'); - console.log(folderGoBack); $('#backbtn').removeAttr('disabled'); } } diff --git a/resources/custom.css b/resources/custom.css index ac524cb8..4ca0c16e 100644 --- a/resources/custom.css +++ b/resources/custom.css @@ -1832,4 +1832,8 @@ h2 { .progress-bar-top { margin-bottom: -4px; border-radius: 6px 6px 0px 0px; +} + +.no-hover:hover { + background-color: initial; } \ No newline at end of file diff --git a/resources/views/admin/article/index.blade.php b/resources/views/admin/article/index.blade.php index 95a9810f..0a1343aa 100644 --- a/resources/views/admin/article/index.blade.php +++ b/resources/views/admin/article/index.blade.php @@ -28,12 +28,12 @@   Modifier l'article @endif @if(\Auth::user()->p('article_edit') == 1 && \Auth::user()->p('picture_add')) -   Gérer les photos +   Gérer les photos @endif
-   Voir l'article +   Voir l'article
diff --git a/resources/views/admin/calendar/calendar_display.blade.php b/resources/views/admin/calendar/calendar_display.blade.php index c6e1cf60..aa524fa2 100644 --- a/resources/views/admin/calendar/calendar_display.blade.php +++ b/resources/views/admin/calendar/calendar_display.blade.php @@ -38,8 +38,10 @@ @section('custom_scripts') + +
+Dernière mise à jour {{date('r')}} \ No newline at end of file diff --git a/resources/views/admin/job/add.blade.php b/resources/views/admin/job/add.blade.php index 06c73422..02ba8049 100644 --- a/resources/views/admin/job/add.blade.php +++ b/resources/views/admin/job/add.blade.php @@ -14,14 +14,14 @@
- + Nom du poste
- + Description du poste
diff --git a/resources/views/admin/log/display.blade.php b/resources/views/admin/log/display.blade.php index 4b678c28..ebedc6d5 100644 --- a/resources/views/admin/log/display.blade.php +++ b/resources/views/admin/log/display.blade.php @@ -25,7 +25,13 @@ {{$item->created_at}} {{$item->type}} {{$item->result}} - {{\App\User::find($item->user_id)->fullname()}} + @if($item->user_id == 0) + Utilisateur non authentifié + @elseif(\App\User::find($item->user_id)) + {{\App\User::find($item->user_id)->fullname()}} + @else + Utilisateur inconnu + @endif {{$item->event}} @endforeach diff --git a/resources/views/admin/ocom/generate.blade.php b/resources/views/admin/ocom/generate.blade.php index c9d55f5b..e9d64f96 100644 --- a/resources/views/admin/ocom/generate.blade.php +++ b/resources/views/admin/ocom/generate.blade.php @@ -8,21 +8,33 @@
-
+
@method('PUT') @csrf
-

Coller l'index de chacun des guides pédagogiques de niveau dans la zone de texte. Générer

+

Sélectionner un fichier .cvs contenant l'index des cours a importer.

-
- - +
+ +
+
+ +
+ + Supprimer + + Parcourir + Changer + + + +
- +
diff --git a/resources/views/admin/update.blade.php b/resources/views/admin/update.blade.php index 5b315dcc..d2a843d7 100644 --- a/resources/views/admin/update.blade.php +++ b/resources/views/admin/update.blade.php @@ -41,6 +41,16 @@
+
  • +
    +
    + +
    +
    + Ajout d'un lien avec Google Drive +
    +
    +
  • @@ -81,6 +91,16 @@
  • +
  • +
    +
    + +
    +
    + Déplacement des plugins JS sur le serveur +
    +
    +
  • @@ -94,7 +114,37 @@
    - Correction de multiples bugs + Correction de multiples bugs +
    + + +
  • +
    +
    + +
    +
    + Correction d'un bug d'affichage des icones +
    +
    +
  • +
  • +
    +
    + +
    +
    + Correction de multiples bugs dans la gestion des grades +
    +
    +
  • +
  • +
    +
    + +
    +
    + Correction de multiples bugs dans la gestion des postes
  • diff --git a/resources/views/admin/user/profil.blade.php b/resources/views/admin/user/profil.blade.php index 3a1a6c23..6dd3b0c4 100644 --- a/resources/views/admin/user/profil.blade.php +++ b/resources/views/admin/user/profil.blade.php @@ -10,7 +10,7 @@
    Card image cap
    {{\Auth::User()->fullname()}}
    -
    {{\Auth::User()->rank->name}}
    +
    {{\Auth::User()->rank->name}}
    diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php index 39ff71a7..41c83ff0 100644 --- a/resources/views/errors/layout.blade.php +++ b/resources/views/errors/layout.blade.php @@ -175,7 +175,6 @@
    - {{ Breadcrumbs::render() }}

    Oops! @yield('title')

    diff --git a/resources/views/layouts/admin/head.blade.php b/resources/views/layouts/admin/head.blade.php index 13b97462..8184ce7c 100644 --- a/resources/views/layouts/admin/head.blade.php +++ b/resources/views/layouts/admin/head.blade.php @@ -4,7 +4,7 @@ ?> -C-CMS - Espace Administration +{{ ($breadcrumb = Breadcrumbs::current()) ? $breadcrumb->title : 'Espace Administration' }} - C-CMS @@ -26,12 +26,12 @@ - - + + - + diff --git a/resources/views/layouts/admin/sidebar.blade.php b/resources/views/layouts/admin/sidebar.blade.php index 0e2f95f2..6d82a36e 100644 --- a/resources/views/layouts/admin/sidebar.blade.php +++ b/resources/views/layouts/admin/sidebar.blade.php @@ -94,6 +94,14 @@ @endif + @if(\Auth::user()->p('schedule_see') == 1) + + @endif @if(\Auth::user()->p('article_see') == 1)