Permission update

This commit is contained in:
George Frederick "Buzz" Beurling
2020-03-22 20:00:23 -04:00
parent 1e3ae2fbbb
commit ae3be2b977
27 changed files with 344 additions and 655 deletions

View File

@@ -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'));
}
}

View File

@@ -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()

View File

@@ -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 lOCOM,Objectif de compétence,Nbredepériode,,Nbre dans horaire,Instructeur,,N° de lOREN,Objectif de rendement,N° de lOCOM,Objectif de compétence,Nbre de période,,Nbre dans horaire,Instructeur,,\"N° de
lOREN\",\"Objectif de
rendement\",\"N° de
lOCOM\",Objectif de compétence,Nbredepériodes,,Nbre dans horaire,Instructeur,,N° de l'OREN,Objectif de rendement,N° de lOCOM,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 laide\",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
dinté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 dinstruction obligatoires,6,,,
,,\"OREN 100 - Total des périodes dinstruction
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 dinstruction 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 dapprentissage 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 dinstruction
obligatoires\",,3,,0,,,,,OREN X01 - Total des périodes dinstruction obligatoires,,3,,,,,,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,
,,MX01.01F,Participer à une élection,3,,,,,,,\"OREN X01 Total des périodes dinstruction
complémentaires\",,18,,,,,,,\"OREN X01 - Total des périodes dinstruction
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 dinstruction
obligatoires\",,9,,,,,,,OREN X02 - Total des périodes dinstruction obligatoires,,9,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,
,,\"OREN X01 - Total des périodes dinstruction
obligatoires\",,3,,0,,,,,\"OREN X02 Total des périodes dinstruction
complémentaires\",,18,,,,,,,\"OREN X02 - Total des périodes dinstruction
complémentaires\",,18,,,,,,,,OREN X01 - Total des périodes dinstruction obligatoires,3,,,
,,\"OREN X01 - Total des périodes dinstruction
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 dun
chef déquipe\",M303.01,Définir le rôle dun chef déquipe,2,,2,,,,,,OREN X01 - Total des périodes dinstruction 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 lauto-évaluation,1,,1,,,,,CX02.01,Effectuer un service communautaire,18,,,
,,\"OREN X01 - Total des périodes dinstruction
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 dinstruction obligatoires,9,,,
,,\"OREN X01 - Total des périodes dinstruction
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 dinstruction 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 dune 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 lOREN 303,,0,,,,,,,M403.03,Motiver les membres dune é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 dun 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 dinstruction
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 dune affectation à un poste de leadership,1,,,
,,\"OREN 103 - Total des périodes dinstruction
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 dinstruction
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 dinstruction
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 dinstruction obligatoires,,12,,,,,,,,OREN 403 - Total des périodes dinstruction 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 dinstruction complémentaires,,16,,,,,,,,OREN 403 - Total des périodes dinstruction 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 dactivités physiques
dintensité 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 daccroî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 daccroî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 dinstruction
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 daccroî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 dinstruction
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 dinstruction
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 dinstruction
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 dinstruction
obligatoires\",,9,,,,,X05,\"Participer à des activités
physiques\",MX05.01,Participer à des activités physiques,9,,,,,,,OREN X04 - Total des périodes dinstruction obligatoires,,9,,,,,,,,\"OREN X04 - Total des périodes
dinstruction obligatoires\",9,,,
,,\"OREN X05 - Total des périodes dinstruction
complémentaires\",,18,,,,,,,CX05.01,Participer à des activités physiques,9,,,,,,,\"OREN X04 - Total des périodes dinstruction
complémentaires\",,15,,,,,,,,\"OREN X04 - Total des périodes
dinstruction complémentaires\",15,,,
106,\"Tirer avec la carabine à
air comprimé des cadets\",M106.01,\"Identifier les parties et les caractéristiques
dune 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 dinstruction
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 dinstruction
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 dinstruction obligatoires,,9,,,,,,,,OREN X05 - Total des périodes dinstruction 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 dinstruction
complémentaires\",,18,,,,,,,,OREN X05 - Total des périodes dinstruction 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 dinstruction 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 lerreur de tir,2,,,,,,,C406.02,Marquer les cibles de tir de précision,1,,,
,,,OREN 106 - Total des périodes dinstruction complémentaires,4,,0,,,,,\"OREN 206 Total des périodes dinstruction
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 dinstruction
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 lAir\",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 lAir\",M107.03,\"Respecter les règles et les procédures de
salutation\",1,,,,,,,M207.02,\"Reconnaître les aspects historiques
des Cadets de lAviation 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 lAir\",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 dinstruction 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 dinstruction obligatoires,,3,,,,,,,,OREN 406 - Total des périodes dinstruction complémentaires,13,,,
,,M107.06,Discuter des occasions dinstruction 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 dinstruction complémentaires,,15,,,,,407,Servir dans un escadron de cadets de lAir,M407.01,Discuter des occasions d'instruction du niveau de compétence quatre,1,,,
,,C107.01,Entretenir luniforme de cadet de lair,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 lAir\",3,,,,,307,\"Servir dans un
escadron de cadets de lAir\",M307.01,\"Identifier les occasions dinstruction du niveau de
compétence trois\",1,,,,,,,M407.02,\"Discuter des occasions dinstruction de quatrième année au Centre dinstruction
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 dinstruction 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 lAir 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
lescadron\",2,,,,,,,C107.04,\"Participer à une activité relative à
l'histoire de lescadron\",2,,,,,,,C307.01,\"Participer à une présentation donnée par un
conférencier invité dune 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 dinstruction obligatoires,7,,2,,,,,\"OREN 207 Total des périodes dinstruction
obligatoires\",,4,,1,,,,,C307.02,\"Participer à une présentation donnée par lofficier de
liaison cadets\",2,,,,,,,C307.02,\"Participer à une présentation donnée par
lofficier de liaison des cadets (OLC)\",2,,,
,,,OREN 106 - Total des périodes dinstruction complémentaires,6,,0,,,,,\"OREN 207 Total des périodes dinstruction
complémentaires\",,10,,,,,,,C307.03,\"Participer à une présentation donnée par un
conférencier invité de la Ligue des cadets de lAir 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 lexercice militaire
en tant que membre dune escouade\",M208.01,\"Tourner à gauche et à droite en
marchant\",2,,1,,,,,OREN 307 - Total des périodes dinstruction 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 dinstruction 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 dinstruction obligatoires,2,,,
,,M108.04,\"Exécuter les mouvements pour resserrer les
rangs vers la droite et vers la gauche\",1,,,,,,,C208.02,\"Exécuter lexercice militaire avec des
armes\",8,,,,,,,M308.02,Donner des commandements,1,,1,,,,,,OREN 407 - Total des périodes dinstruction 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 dexercice
militaire supplémentaires\",6,,,,,,,COREN de lOREN 308,,0,,,,,408,Commander une section lors dun rassemblement,M408.01,Discuter de la façon de commander une section lors dun rassemblement,1,,,
,,M108.06,\"Exécuter les mouvements requis pour
l'alignement par la droite\",1,,1,,,,,\"OREN 208 Total des périodes dinstruction
obligatoires\",,3,,,,,,,C308.01,Exécuter un exercice militaire relatif aux drapeaux,4,,,,,,,M408.02,Décrire la séquence dun rassemblement,1,,,
,,M108.07,\"Exécuter les mouvements pour ouvrir et fermer
les rangs\",1,,,,,,,\"OREN 208 Total des périodes dinstruction
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,\"Sexercer à lexercice de prise darmes dans le
cadre dune 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 lexercice 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 dune bretelle, après une activité physique\",1,,,,,,,OREN 308 - Total des périodes dinstruction obligatoires,,4,,,,,,,C408.01,Discuter de lhistoire de lexercice 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 dinstruction complémentaires,,16,,,,,,,C408.02,Observer une reconstitution historique de lexercice 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 dinstruction
complémentaires\",,9,,,,,309,\"Enseigner une
leçon\",M309.01,Expliquer les principes dinstruction,2,,2,,,,,C308.01,Exécuter un exercice militaire avec drapeaux,6,,,
,,C108.01,\"Exécuter des mouvements dexercice 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 dinstruction,2,,2,,,,,C308.02,Donner des commandements,2,,,
,,C108.02,Participer à une compétition dexercice 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 dinstruction
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 dinstruction
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 dinstruction obligatoires,4,,,
111,\"Participer à des activités
récréatives de biathlon dété\",C111.01,\"Participer à une séance dinformation 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 dinstruction 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 dinstruction,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 dune minute,2,,2,,,,,M409.03,Décrire les besoins de lapprenant,2,,,
,,\"OREN 111 - Total des périodes dinstruction
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 dinstruction
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 dinstruction
complémentaires\",,18,,,,,,,C309.04,\"Identifier les formations pour linstruction dexercice
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 dexercice 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 dexercice 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 dinstruction obligatoires,,13,,,,,,,C409.03,Agir à titre dinstructeur adjoint,3,,,
,,MX20.01F,\"Assister à une cérémonie commémorative des
FAC\",-,,,,,,,C230.02,Visiter un musée daviation de la région,3,,,,,,,OREN 309 - Total des périodes dinstruction 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 dinstructeur adjoint dexercice
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 dinstruction
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 dinstruction
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 dune 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 dopérations daérodrome\",M121.01,\"Discuter des occasions offertes au sein de
laviation\",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 dinstruction 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 dinformation sur le biathlon,1,,,,,,,,OREN 409 - Total des périodes dinstruction complémentaires,23,,,
,,\"OREN 121 - Total des périodes dinstruction
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 lalphabet phonétique et des chiffres\",M129.01,Réciter lalphabet 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 dinstruction
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 dinstruction
complémentaires\",,0,,,,,,,C231.02,\"Faire voler un planeur Colditz en
papier\",2,,,,,,,OREN 311 - Total des périodes dinstruction obligatoires,,0,,,,,,,C211.02,Courir sur un terrain accidenté,1,,,
130,\"Participer à des activités
daviation\",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 dinstruction 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 dun 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 dinformation 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 dun aéronef,1,,,,,,,\"OREN 231 Total des périodes dinstruction
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 dinstruction
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 dinstruction obligatoires,0,,,
,,C130.04,Visiter un musée daviation 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 dinstruction 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 dapprentissage 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 dinstruction
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 dinstruction
complémentaires\",,19,,0,,,,,C232.01,\"Identifier les caractéristiques des
turbines à gaz\",2,,,,,,,OREN X20 - Total des périodes dinstruction 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 dinstruction
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é dun 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 dinstruction
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 dinstruction
obligatoires\",,3,,3,,,,,\"OREN 232 Total des périodes dinstruction
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 dinstruction
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 laérodynamique dun
hélicoptère\",1,,,,,,,MX20.01H,\"Participer à des ateliers d'apprentissage
des FAC\",-,,,
160,\"Participer à des
activités dopérations daérodrome\",M160.01,Identifier les parties principales dun 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 dune 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 laviation local\",2,,,,,,,,\"OREN X20 - Total des périodes
dinstruction 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 dinstruction obligatoires,,2,,,,,,,,OREN X20 - Total des périodes dinstruction 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 dinstruction 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 dopération pour les transmissions destinées à laviation et la délivrance de licence,1,,,
,,\"OREN 160 - Total des périodes dinstruction
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 latmosphè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 dinstruction
complémentaires\",,3,,0,,,,,C240.04,\"Naviguer au moyen dun système
mondial de positionnement (GPS)\",3,,,,,,,M336.02,Expliquer la formation des nuages,1,,1,,,,,C429.03,\"Décrire les longueurs dondes, 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 dair sur la
température\",1,,,,,,,C429.04,\"Expliquer les communications de secours, durgence et de sécurité\",1,,,
,,C170.02,\"Visiter des installations de maintenance
daviation 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 lhumidité et de la
température sur les conditions météorologiques\",2,,,,,,,COREN de lOREN 429,,2,,,
,,\"OREN 170 - Total des périodes dinstruction
obligatoires\",,0,,,,,,,\"OREN 240 Total des périodes dinstruction
obligatoires\",,4,,,,,,,\"331/336/
COREN de lOREN 337\",Sujets sur laviation - Évaluation combinée,1,,,,,,,,OREN 429 - Total des périodes dinstruction obligatoires,0,,,
,,\"OREN 170 - Total des périodes dinstruction
complémentaires\",,5,,0,,,,,\"OREN 240 Total des périodes dinstruction
complémentaires\",,10,,,,,,,C336.01,\"Lire un message dobservation météorologique
régulière pour laviation (METAR)\",2,,,,,,,,OREN 429 - Total des périodes dinstruction 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
dopérations daé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 dune 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 dinstruction 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 dinstruction 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 dabri,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 dun 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 dinstruction 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 à laviation\",1,,,,,,,,OREN 431 - Total des périodes dinstruction 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 dinstruction
obligatoires\",,2,,,,,,,C337.03,Pratiquer des compétences en navigation aérienne,1,,,,,432,Décrire les systèmes de moteur davion,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 dinstruction
complémentaires\",,18,,,,,,,OREN 337 - Total des périodes dinstruction obligatoires,,2,,,,,,,M432.02,Décrire les systèmes dhé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 dinstruction complémentaires,,2,,,,,,,M432.03,Décrire les instruments du moteur,1,,,
,,C190.04,Recueillir de leau potable en campagne,2,,,,,,,M270.02,\"Identifier les exigences de
maintenance des aéronefs\",2,,,,,340,\"Identifier les
aspects de lexploration spatiale\",M340.01,Identifier des astronautes canadiens,1,,,,,,,C432.01,Décrire le circuit dallumage et le système électrique,1,,,
,,C190.05,\"Identifier les blessures causées par
lenvironnement\",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 lhistoire de lexploration spatiale habitée,1,,,,,,,C432.02,Décrire les systèmes de suralimentation par turbocompresseur et par surpression,1,,,
,,C190.06,Respecter lenvironnement 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
dapprentissage 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 dinstruction obligatoires,3,,,
,,\"OREN 190 - Total des périodes dinstruction
obligatoires\",,14,,3,,,,,C270.03,\"Visiter une installation de construction
ou de maintenance daéronefs\",3,,,,,,,C340.03,Discuter de lexploration spatiale inhabitée,2,,,,,,,,OREN 432 - Total des périodes dinstruction complémentaires,3,,,
,,\"OREN 190 - Total des périodes dinstruction
complémentaires\",,12,,0,,,,,C270.04,\"Visionner la vidéo intitulée « Worlds
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 dinstruction
obligatoires\",,6,,,,,,,C340.05,Simuler la vie dans lespace,3,,,,,,,M436.02,Décrire les masses et les fronts dair,3,,,
,,,,,,,,,,,\"OREN 270 Total des périodes dinstruction
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 lastronomie ou de laérospatiale\",2,,,,,,,,OREN 436 - Total des périodes dinstruction obligatoires,4,,,
,,,,,,,,,,,M290.04,Fabriquer des signaux sol-air,2,,,,,,,C340.10,Identifier les programmes dastronomie en ligne,1,,,,,,,,OREN 436 - Total des périodes dinstruction complémentaires,5,,,
,,,,,,,,,,,M290.05,\"Identifier les techniques de randonnée
pédestre\",2,,,,,,,OREN 340 - Total des périodes dinstruction 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 dinstruction complémentaires,,18,,,,,,,M437.02,Décrire le compas magnétique,1,,,
,,,,,,,,,,,C290.01,\"Participer à une présentation donnée
par un membre dun organisme de survie\",2,,,,,360,\"Reconnaître
les aspects des opérations daérodrome\",C360.01,Identifier les types daérodrome,1,,,,,,,\"431 / 432
436 /
437 PC\",Sujets sur laviation - É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 dun
aérodrome\",1,,,,,,,C437.01,Résoudre des problèmes de navigation à laide dun calculateur de vol manuel,2,,,
,,,,,,,,,,,C290.03,Creuser une caverne dans la neige,3,,,,,,,C360.03,\"Fabriquer un modèle réduit despace aérien dun
aérodrome\",3,,,,,,,C437.02,Utiliser une carte aéronautique de navigation VFR [règles de vol à vue] (VNC),2,,,
,,,,,,,,,,,C290.04,\"Recueillir de leau 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 dinstruction obligatoires,4,,,
,,,,,,,,,,,C290.05,Participer à une randonnée pédestre,6,,,,,,,C360.05,\"Identifier les aspects des interventions durgence et
de la sécurité des aérodromes\",1,,,,,,,,OREN 437 - Total des périodes dinstruction complémentaires,4,,,
,,,,,,,,,,,\"OREN 290 Total des périodes dinstruction
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 dinstruction
complémentaires\",,14,,,,,,,OREN 360 - Total des périodes dinstruction obligatoires,,0,,,,,,,M440.02,Décrire les satellites canadiens,1,,,
,,,,,,,,,,,,,,,,,,,,OREN 360 - Total des périodes dinstruction 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 dinspection 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
daé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 daéronef,3,,,,,,,C440.09,\"Décrire le lien entre la gravité et lespace-
temps\",2,,,
,,,,,,,,,,,,,,,,,,,,C270.01,\"Participer à une présentation donnée par
un employé de lindustrie de la construction aéronautique et de la maintenance davion\",2,,,,,,,C440.10,Discuter de l'énergie cinétique potentielle,1,,,
,,,,,,,,,,,,,,,,,,,,C270.03,\"Visiter une installation de construction ou de
maintenance daéronefs\",3,,,,,,,C440.11,\"Regarder la vidéo intitulée Einsteins Big
Idea\",5,,,
,,,,,,,,,,,,,,,,,,,,OREN 370 - Total des périodes dinstruction obligatoires,,3,,,,,,,,OREN 440 - Total des périodes dinstruction obligatoires,2,,,
,,,,,,,,,,,,,,,,,,,,\"OREN 370 - Total des périodes dinstruction 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 à laide dune carte et dune boussole\",M390.01,Identifier les parties dune boussole,1,,1,,,460,Décrire les occasions de carrière en opérations daérodrome,C460.01,Décrire les occasions de carrière en opérations daé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 dinstruction obligatoires,0,,,
,,,,,,,,,,,,,,,,,,,,M390.05,\"Déterminer des relèvements sur une carte et sur le
terrain\",2,,,,,,,,OREN 460 - Total des périodes dinstruction complémentaires,3,,,
,,,,,,,,,,,,,,,,,,,,COREN de lOREN 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 dinstruction obligatoires,0,,,
,,,,,,,,,,,,,,,,,,,,C390.05,Calculer la déclinaison magnétique,2,,,,,,,,OREN 470 - Total des périodes dinstruction complémentaires,6,,,
,,,,,,,,,,,,,,,,,,,,C390.06,Déterminer la direction à laide 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 à laide dun récepteur du système mondial
de positionnement (GPS)\",4,,,
,,,,,,,,,,,,,,,,,,,,C390.10,\"Identifier les méthodes de préparation et de cuisson
dun petit animal ou dun 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 dune é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 leau potable avec un distillateur solaire,2,,,,,,,C490.04,Utiliser les outils de façon sécuritaire,3,,,
,,,,,,,,,,,,,,,,,,,,OREN 390 - Total des périodes dinstruction 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 dinstruction 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 dinstruction obligatoires,14,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OREN 490 - Total des périodes dinstruction 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);
}
/**

View File

@@ -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

View File

@@ -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');
}
}

View File

@@ -75,4 +75,9 @@ class OCOM extends Model
}
return $result;
}
public static function findByOCOM($ocom)
{
return OCOM::where('ocom','=',$ocom)->first();
}
}

View File

@@ -14,7 +14,7 @@
month: "Mois",
week: "Semaine",
day: "Jour",
list: "Mon planning"
list: "Liste"
},
weekLabel: "Sem.",
allDayHtml: "Toute la<br/>journée",

View File

@@ -1832,4 +1832,8 @@ h2 {
.progress-bar-top {
margin-bottom: -4px;
border-radius: 6px 6px 0px 0px;
}
.no-hover:hover {
background-color: initial;
}

17
public/js/calendar.js vendored
View File

@@ -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("<i class='"+event.icon+"'></i>");
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) {

View File

@@ -68,8 +68,6 @@ function loadFolder(folder) {
}
else
{
console.log('wtf');
console.log(folderGoBack);
$('#backbtn').removeAttr('disabled');
}
}

View File

@@ -1832,4 +1832,8 @@ h2 {
.progress-bar-top {
margin-bottom: -4px;
border-radius: 6px 6px 0px 0px;
}
.no-hover:hover {
background-color: initial;
}

View File

@@ -28,12 +28,12 @@
<a href="/admin/article/activity/edit/{{$a->id}}" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i>&nbsp; Modifier l'article</a>
@endif
@if(\Auth::user()->p('article_edit') == 1 && \Auth::user()->p('picture_add'))
<a href="/admin/article/activity/picture/{{$a->id}}" type="button" class="btn btn-secondary"><i class="fa fa-picture-o"></i>&nbsp; Gérer les photos</a>
<a href="/admin/article/activity/picture/{{$a->id}}" type="button" class="btn btn-secondary"><i class="fas fa-image"></i>&nbsp; Gérer les photos</a>
@endif
</div>
</div>
<div class="col-md-12 text-center">
<a href="/activity/{{$a->id}}" target="_blank" type="button" class="btn btn-outline-secondary"><i class="fa fa-picture-o"></i>&nbsp; Voir l'article</a>
<a href="/activity/{{$a->id}}" target="_blank" type="button" class="btn btn-outline-secondary"><i class="fas fa-image"></i>&nbsp; Voir l'article</a>
</div>
</div>
</div>

View File

@@ -38,8 +38,10 @@
@section('custom_scripts')
<script src='/assets/fullcalendar/core/main.js'></script>
<script src='/assets/fullcalendar/core/locales/fr-ca.js'></script>
<script src='/assets/fullcalendar/daygrid/main.js'></script>
<script src='/assets/fullcalendar/interaction/main.js'></script>
<script src='/assets/fullcalendar/list/main.js'></script>
<script src="/js/calendar.js"></script>
<div class="log"></div>
<script>

View File

@@ -21,8 +21,8 @@
<div>
{!! $job->desc!!}
</div>
<div class="row">
<div class="col-md-10">
<div class="row text-right">
<div class="col">
@if($job->id == 1)
<button disabled class="btn btn-primary btn-block">Gérer</button>
@else
@@ -31,9 +31,9 @@
</div>
<div class="col">
@if($job->id == 1)
<button disabled class="btn btn-danger btn-just-icon"><i class="fa fa-close"></i></button>
<button disabled class="btn btn-danger btn-just-icon"><i class="fas fa-times"></i></button>
@else
<button class="btn btn-danger btn-just-icon" onclick="deleteJobs({{$job->id}})"><i class="fa fa-close"></i></button>
<button class="btn btn-danger btn-just-icon" onclick="deleteJobs({{$job->id}})"><i class="fas fa-times"></i></button>
@endif
</div>
</div>

View File

@@ -21,8 +21,8 @@
<div>
{!! $rank->desc!!}
</div>
<div class="row">
<div class="col-md-10">
<div class="row text-right">
<div class="col">
@if($rank->id == 1)
<button disabled class="btn btn-primary btn-block">Gérer</button>
@else
@@ -31,9 +31,9 @@
</div>
<div class="col">
@if($rank->id == 1)
<button disabled class="btn btn-danger btn-just-icon"><i class="fa fa-close"></i></button>
<button disabled class="btn btn-danger btn-just-icon"><i class="fas fa-trash-alt"></i></button>
@else
<button class="btn btn-danger btn-just-icon" onclick="deleteRanks({{$rank->id}})"><i class="fa fa-close"></i></button>
<button class="btn btn-danger btn-just-icon" onclick="deleteRanks({{$rank->id}})"><i class="fas fa-trash-alt"></i></button>
@endif
</div>
</div>

View File

@@ -51,7 +51,7 @@
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}" value="{{$rank->p($r['ckey'])}}">
<h5>{{$r['communName']}}</h5>
<div class="btn-group">
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fa fa-close"></i></button>
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon @if($rank->p($r['ckey']) == 0) btn-warning @else btn-outline-warning @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon @if($rank->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
</div>

View File

@@ -81,7 +81,7 @@
<div class="card-body">
<div class="mx-auto d-block">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\Auth::User()->rank->name}}</div>
<div class="location text-sm-center"><i class="fas fa-id-card-alt"></i> {{\Auth::User()->rank->name}}</div>
</div>
<hr>
<div class="card-text text-sm-center">

View File

@@ -5,7 +5,7 @@
<td class="text-left">Nom</td>
<td class="text-center">Dernière modification</td>
<td class="td-actions text-right">
@if(\App\GoogleDriveFile::getPermForAuthUser($currentDir,'p'))
@if($permission['p'])
<div class="dropdown">
<div id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-2x ml-3 text-gray" style="margin-right: .8rem !important;cursor: pointer;margin-top: -10px;margin-bottom: -6px"></i>
@@ -27,19 +27,31 @@
</thead>
<tbody>
@foreach($directories as $directory)
@php
$read = \App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'r');
$manage = \App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'p');
@endphp
<tr class="context-menu-one">
<td @if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'r')) onclick="loadFolder('{{$directory['basename']}}')" @endif style="cursor: pointer;" ><i class="fas fa-folder fa-2x"></i></td>
<td @if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'r')) onclick="loadFolder('{{$directory['basename']}}')" @endif style="cursor: pointer;" >{{$directory['name']}}</td>
<td class="text-center" onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" ><span data-toggle="tooltip" data-placement="bottom" title="{{date('r',$directory['timestamp'])}}">{{strftime('%e %b %Y',$directory['timestamp'])}}</span></td>
@if($read)
<td onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" >
<i class="fas fa-folder fa-2x"></i>
</td>
@else
<td>
<i class="fas fa-folder fa-2x text-muted"></i>
</td>
@endif
<td @if($read) onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" @else class="text-muted" @endif>{{$directory['name']}}</td>
<td @if($read) class="text-center" onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" @else class="text-center text-muted" @endif ><span data-toggle="tooltip" data-placement="bottom" title="{{date('r',$directory['timestamp'])}}">{{strftime('%e %b %Y',$directory['timestamp'])}}</span></td>
<td class="td-actions text-right">
@if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'p'))
@if($manage)
<div class="dropdown">
<div id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-2x ml-3 text-gray" style="margin-right: .8rem !important;cursor: pointer;"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="/admin/drive/{{$directory['basename']}}/permission">
<i class="fas fa-lock mr-2"></i></i>Permission
<i class="fas fa-lock mr-2"></i>Permission
</a>
<a class="dropdown-item text-danger" onclick="deleteFolder('{{ $directory['basename'] }}')">
<i class="fas fa-trash-alt mr-2"></i>Supprimer
@@ -47,7 +59,9 @@
</div>
</div>
@else
<i class="fas fa-lock text-danger mr-2" data-toggle="tooltip" data-placement="left" title="Vous n'avez pas les permissions nécessaires pour modifier ce dossier"></i>
@if(!$read)
<i class="fas fa-lock text-danger mr-2" data-toggle="tooltip" data-placement="left" title="Vous n'avez pas les permissions nécessaires pour modifier ce dossier"></i>
@endif
@endif
</td>
</tr>
@@ -94,15 +108,4 @@
@endif
</tbody>
</table>
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>
<script>
$(document).ready(function() {
$('#tables').DataTable({"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
"columnDefs": [
{ "orderable": false, "targets": 0 },
{ "orderable": false, "targets": 3 },
],
"order": []
});
});
</script>
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>

View File

@@ -14,14 +14,14 @@
<div class="col-md-12">
<div class="form-group">
<label>Nom</label>
<input class="form-control" type="text" name="name">
<input class="form-control" type="text" name="name" required>
<small class="form-text text-muted">Nom du poste</small>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label>Description</label>
<textarea id="desc" name="desc"></textarea>
<textarea id="desc" name="desc" required></textarea>
<small class="form-text text-muted">Description du poste</small>
</div>
</div>

View File

@@ -25,7 +25,13 @@
<td>{{$item->created_at}}</td>
<th><span class="badge badge-pill badge-{{$item->typeColor()}}">{{$item->type}}</span></th>
<th><span class="badge badge-pill badge-{{$item->result}} text-uppercase">{{$item->result}}</span></th>
<td>{{\App\User::find($item->user_id)->fullname()}}</td>
@if($item->user_id == 0)
<td>Utilisateur non authentifié</td>
@elseif(\App\User::find($item->user_id))
<td>{{\App\User::find($item->user_id)->fullname()}}</td>
@else
<td>Utilisateur inconnu</td>
@endif
<td><a href="">{{$item->event}}</a></td>
</tr>
@endforeach

View File

@@ -8,21 +8,33 @@
</div>
<div class="card-body">
<div class="content">
<form method="post">
<form method="POST" enctype="multipart/form-data">
<div class="row">
@method('PUT')
@csrf
<div class="col-12">
<p>Coller l'index de chacun des guides pédagogiques de niveau dans la zone de texte. Générer </p>
<p>Sélectionner un fichier .cvs contenant l'index des cours a importer.</p>
</div>
<div class="col-12">
<div class="form-group">
<label for="exampleFormControlTextarea1">Index des cours</label>
<textarea class="form-control" id="index" name="text" rows="3"></textarea>
<div class="form-group bmd-form-group is-filled">
<label class="label-control bmd-label-static" for="file">Fichier .csv de l'index des cours</label>
<div class="fileinput fileinput-new input-group" data-provides="fileinput" style="display: flex !important;">
<div class="form-control" data-trigger="fileinput">
<span class="fileinput-filename"></span>
</div>
<span class="input-group-append">
<span class="input-group-text fileinput-exists cursor" data-dismiss="fileinput">Supprimer</span>
<span class="input-group-text btn-file">
<span class="fileinput-new cursor">Parcourir</span>
<span class="fileinput-exists cursor">Changer</span>
<input type="file" name="file" accept="text/csv">
</span>
</span>
</div>
</div>
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary">Générer</button>
<button type="submit" class="btn btn-primary">Importer</button>
</div>
</div>
</form>

View File

@@ -41,6 +41,16 @@
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-plus"></i>
</div>
<div class="col m-auto text-left">
Ajout d'un lien avec Google Drive
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
@@ -81,6 +91,16 @@
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Déplacement des plugins JS sur le serveur
</div>
</div>
</li>
</ul>
</p>
</div>
@@ -94,7 +114,37 @@
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction de multiples bugs</a>
Correction de multiples bugs
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction d'un bug d'affichage des icones
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction de multiples bugs dans la gestion des grades
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction de multiples bugs dans la gestion des postes
</div>
</div>
</li>

View File

@@ -10,7 +10,7 @@
<div class="mx-auto d-block">
<img class="rounded-circle mx-auto d-block" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg" alt="Card image cap" style="height:12rem">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\Auth::User()->rank->name}}</div>
<div class="location text-sm-center"><i class="fas fa-id-card-alt"></i> {{\Auth::User()->rank->name}}</div>
</div>
</div>
<div class="col-sm-6 text-center">

View File

@@ -175,7 +175,6 @@
<div id="notfound">
<img src="/images/C-CMS_G.png">
{{ Breadcrumbs::render() }}
<div class="notfound">
<div class="notfound-404">
<h3>Oops! @yield('title')</h3>

View File

@@ -4,7 +4,7 @@
?>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<title>C-CMS - Espace Administration</title>
<title>{{ ($breadcrumb = Breadcrumbs::current()) ? $breadcrumb->title : 'Espace Administration' }} - C-CMS</title>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
@@ -26,12 +26,12 @@
<link href='/assets/fullcalendar/core/main.css' rel='stylesheet' />
<link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' />
<link rel="stylesheet" href="/js/plugins/trumbowyg/ui/trumbowyg.min.css">
<link rel="stylesheet" href="/js/plugins/trumbowyg/ui/plugins/colors/ui/trumbowyg.colors.min.css">
<link rel="stylesheet" href="/js/plugins/trumbowyg/ui/plugins/emoji/ui/trumbowyg.emoji.min.css">
<link rel="stylesheet" href="/js/plugins/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css">
<link rel="stylesheet" href="/js/plugins/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css">
<link rel="stylesheet" href="/css/contextLoader.min.css">
<link rel="stylesheet" href="/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.css">
<link rel="stylesheet" href="/public/css/monolith.min.css"/>
<link rel="stylesheet" href="/css/monolith.min.css"/>
<link rel="stylesheet" href="/css/contextLoader.min.css">
<!-- Custom CSS -->

View File

@@ -94,6 +94,14 @@
</a>
</li>
@endif
@if(\Auth::user()->p('schedule_see') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/ocom">
<i class="material-icons">menu_book</i>
<p> BD des cours</p>
</a>
</li>
@endif
@if(\Auth::user()->p('article_see') == 1)
<li class="nav-item ">
<a class="nav-link" href="/admin/article">

View File

@@ -30,6 +30,7 @@ Route::get('/pictures', 'PictureController@index');
Route::get('/file/get','GoogleDriveController@getFile')->middleware('fileperm:file,r');
Route::get('/test','GoogleDriveController@list');
Route::middleware(['auth'])->name('admin.')->group(function () {
@@ -164,9 +165,9 @@ Route::middleware(['auth'])->name('admin.')->group(function () {
Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete');
Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files');
Route::get('/admin/guide','FilesController@guide')->middleware('perm:file_see')->name('guide');
Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('perm:file_see')->name('drive');
Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('perm:file_see')->name('drive.permission');
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@editPermission')->middleware('perm:file_see');
Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive');
Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission');
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@editPermission')->middleware('perm:file_see','fileperm:folder,p');
/** OCOM */