mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 02:39:10 -04:00
Merge remote-tracking branch 'origin/3.2.5' into 3.2.5
This commit is contained in:
@@ -66,7 +66,7 @@
|
||||
@task('run_composer_697')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir_697 }}
|
||||
composer install --prefer-dist --no-scripts -q -o
|
||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks_697')
|
||||
@@ -101,7 +101,7 @@
|
||||
@task('run_composer_736')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir_736 }}
|
||||
composer install --prefer-dist --no-scripts -q -o
|
||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks_736')
|
||||
@@ -136,7 +136,7 @@
|
||||
@task('run_composer_dev')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir_dev }}
|
||||
composer install --prefer-dist --no-scripts -q -o
|
||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks_dev')
|
||||
@@ -171,7 +171,7 @@ git reset --hard {{ $commit }}
|
||||
@task('run_composer_227')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir_227 }}
|
||||
composer install --prefer-dist --no-scripts -q -o
|
||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks_227')
|
||||
@@ -206,7 +206,7 @@ git reset --hard {{ $commit }}
|
||||
@task('run_composer_117')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir_117 }}
|
||||
composer install --prefer-dist --no-scripts -q -o
|
||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks_117')
|
||||
|
||||
12
app/EventType.php
Normal file
12
app/EventType.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class EventType extends Model
|
||||
{
|
||||
protected $casts = [
|
||||
'schedule_model' => 'array',
|
||||
];
|
||||
}
|
||||
@@ -36,6 +36,7 @@ class EventController extends Controller
|
||||
*/
|
||||
public function store()
|
||||
{
|
||||
dd(\request());
|
||||
$event = new Event();
|
||||
|
||||
$event->name = request('name');
|
||||
|
||||
85
app/Http/Controllers/EventTypeController.php
Normal file
85
app/Http/Controllers/EventTypeController.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\EventType;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EventTypeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\EventType $eventType
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(EventType $eventType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\EventType $eventType
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(EventType $eventType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\EventType $eventType
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, EventType $eventType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\EventType $eventType
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(EventType $eventType)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
732
app/Http/Controllers/OCOMController.php
Normal file
732
app/Http/Controllers/OCOMController.php
Normal file
@@ -0,0 +1,732 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\OCOM;
|
||||
use Illuminate\Http\Request;
|
||||
use function GuzzleHttp\json_encode;
|
||||
use function GuzzleHttp\Psr7\str;
|
||||
|
||||
class OCOMController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
|
||||
$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,,,";
|
||||
|
||||
\App\OCOM::truncate();
|
||||
|
||||
$matches = [];
|
||||
$orens = [];
|
||||
preg_match_all('/[X\d]\d\d,[^,]*/',$text,$matches);
|
||||
foreach ($matches[0] as $match)
|
||||
{
|
||||
$match = str_replace('"',"",$match);
|
||||
$match = trim(preg_replace('/\s\s+/', ' ', $match));
|
||||
$oren = "";
|
||||
preg_match('/[X\d]\d\d/',$match,$oren);
|
||||
$value = preg_replace('/[X\d]\d\d,/','',$match);
|
||||
if($value != "")
|
||||
{
|
||||
$orens[$oren[0]] = preg_replace('/[X\d]\d\d,/','',$match);
|
||||
}
|
||||
}
|
||||
|
||||
preg_match_all('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,\d/',$text,$matches);
|
||||
|
||||
foreach ($matches[0] as $match)
|
||||
{
|
||||
$newocom = new OCOM();
|
||||
|
||||
$match = str_replace('"',"",$match);
|
||||
|
||||
$ocom = "";
|
||||
preg_match('/[MC]\S\d\d.\d\d[A-Z]?/',$match,$ocom);
|
||||
|
||||
if(!OCOM::where('ocom',$ocom)->first())
|
||||
{
|
||||
$oren = "";
|
||||
preg_match('/[X\d]\d\d/',$ocom[0],$oren);
|
||||
|
||||
$obj_competence = str_replace($ocom[0].",","",$match);
|
||||
$obj_competence = trim(preg_replace('/\s\s+/', ' ', $obj_competence));
|
||||
|
||||
$nbPeriode = preg_replace('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,/','',$match);
|
||||
$newocom->nbPeriode = $nbPeriode;
|
||||
|
||||
$obj_competence = str_replace(",".$nbPeriode,'',$obj_competence);
|
||||
|
||||
$newocom->ocom = $ocom[0];
|
||||
$newocom->oren = $oren[0];
|
||||
$newocom->objectif_competence = $obj_competence;
|
||||
$newocom->objectif_rendement = $orens[$oren[0]];
|
||||
$newocom->save();
|
||||
}
|
||||
}
|
||||
dd(\App\OCOM::all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(OCOM $oCOM)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(OCOM $oCOM)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, OCOM $oCOM)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(OCOM $oCOM)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function jsonList()
|
||||
{
|
||||
$ocoms = \App\OCOM::all();
|
||||
|
||||
$name = [];
|
||||
|
||||
foreach ($ocoms as $ocom) {
|
||||
array_push($name, $ocom->ocom);
|
||||
}
|
||||
|
||||
return json_encode($name);
|
||||
}
|
||||
|
||||
public function getName(string $ocom)
|
||||
{
|
||||
$foo = \App\OCOM::all()->where('ocom','=',$ocom)->first();
|
||||
if($foo != null)
|
||||
{
|
||||
return $foo->objectif_competence;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
100
app/Http/Controllers/ScheduleEditorController.php
Normal file
100
app/Http/Controllers/ScheduleEditorController.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ScheduleEditorController extends Controller
|
||||
{
|
||||
public function getCourse(int $id = null)
|
||||
{
|
||||
return view('admin.schedule.editor.course');
|
||||
}
|
||||
|
||||
public function getCourseEmpty(int $niveau,int $periode)
|
||||
{
|
||||
return view('admin.schedule.editor.course',['periode' => $periode, 'niveau' => $niveau]);
|
||||
}
|
||||
|
||||
public function getTemplate(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.template',["eventType" => \App\EventType::find($id)]);
|
||||
}
|
||||
|
||||
public function getEventTemplate(int $id)
|
||||
{
|
||||
$eventType = \App\EventType::find($id);
|
||||
|
||||
return json_encode($eventType);
|
||||
}
|
||||
|
||||
public function getEmptyPeriode(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.periode',[
|
||||
'periode_name' => 'Periode '.$id,
|
||||
'periode_begin_time' => '00:00',
|
||||
'periode_end_time' => '00:00',
|
||||
'periode_id' => $id,
|
||||
'nbLevel' => request('nblevel')
|
||||
]);
|
||||
}
|
||||
|
||||
public function getEmptyLevel(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.level',['periode_id' => \request('nbPeriode'),'level_id' => $id]);
|
||||
}
|
||||
|
||||
public function getLevelHeader(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.levelHeader',['level_id' => $id,'level_name' => 'Niveau '.$id]);
|
||||
}
|
||||
|
||||
public function test()
|
||||
{
|
||||
$evenType = new \App\EventType();
|
||||
|
||||
$evenType->name = "Soirée d'instruction régulière";
|
||||
$evenType->admin_desc = "Veuillez modifier la description admin par défaut";
|
||||
$evenType->calendar_color = "orange";
|
||||
$evenType->calendar_icon = "fas fa-book";
|
||||
$evenType->begin_time = "12:00";
|
||||
$evenType->end_time = "18:00";
|
||||
$evenType->location = "Escadron";
|
||||
$evenType->is_mandatory = true;
|
||||
$evenType->use_weekly_msg = true;
|
||||
$evenType->weekly_msg_publication_time = "-5days";
|
||||
$evenType->use_schedule = true;
|
||||
$evenType->schedule_model = [
|
||||
"periodes" => [
|
||||
0 => [
|
||||
"name" => "Periode 1",
|
||||
"begin_time" => "19:00",
|
||||
"end_time" => "20:10"
|
||||
],
|
||||
1 => [
|
||||
"name" => "Pause",
|
||||
"begin_time" => "20:10",
|
||||
"end_time" => "20:30"
|
||||
],
|
||||
2 => [
|
||||
"name" => "Periode 2",
|
||||
"begin_time" => "20:30",
|
||||
"end_time" => "21:20"
|
||||
]
|
||||
],
|
||||
"niveaux" => [
|
||||
0 => [
|
||||
"name" => "Niveau 1"
|
||||
],
|
||||
1 => [
|
||||
"name" => "Niveau 2"
|
||||
],
|
||||
2 => [
|
||||
"name" => "Niveau 3"
|
||||
]
|
||||
]
|
||||
];
|
||||
$evenType->is_promoted = true;
|
||||
//$evenType->save();
|
||||
}
|
||||
}
|
||||
10
app/OCOM.php
Normal file
10
app/OCOM.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class OCOM extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -6,6 +6,7 @@ use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -40,6 +41,10 @@ class AppServiceProvider extends ServiceProvider
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
Blade::directive('loaderDot', function () {
|
||||
return '<div class="text-center"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></div>';
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOCOMSTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('o_c_o_m_s', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('ocom');
|
||||
$table->string('objectif_competence');
|
||||
$table->string('nbPeriode');
|
||||
$table->string('objectif_rendement');
|
||||
$table->string('oren');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('o_c_o_m_s');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateEventTypesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('event_types', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('name');
|
||||
$table->text('admin_desc');
|
||||
$table->string('calendar_color')->default('blue');
|
||||
$table->string('calendar_icon')->default('<i class="fa fa-question-circle"></i>');
|
||||
$table->string('begin_time')->default('12:00');
|
||||
$table->string('end_time')->default('13:00');
|
||||
$table->string('location')->default('Escadron');
|
||||
$table->boolean('is_mandatory')->default(false);
|
||||
$table->boolean('use_weekly_msg')->default(false);
|
||||
$table->string('weekly_msg_publication_time')->default('-5day');
|
||||
$table->boolean('use_schedule')->default(false);
|
||||
$table->text('schedule_model');
|
||||
$table->boolean('is_promoted')->default(false);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('event_types');
|
||||
}
|
||||
}
|
||||
1
public/css/contextLoader.min.css
vendored
Normal file
1
public/css/contextLoader.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.timeline-item{background: #fff;border: 1px solid;border-color: #e5e6e9 #dfe0e4 #d0d1d5;border-radius: 3px;padding: 2%;margin: 0 auto;width: 100%;height: 100%;}@keyframes placeHolderShimmer{0%{ background-position: -468px 0;} 100%{background-position: 468px 0;}}.animated-background{animation-duration: 1s;animation-fill-mode: forwards;animation-iteration-count: infinite;animation-name: placeHolderShimmer;animation-timing-function: linear;background: #f6f7f8;background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);background-size: 800px 104px;height: 96px;position: relative;}.background-masker{background: #fff;position: absolute;}.background-masker.header-top,.background-masker.header-bottom,.background-masker.subheader-bottom{top: 0;left: 40px;right: 0px;height: 10px;}.background-masker.header-left,.background-masker.subheader-left,.background-masker.header-right,.background-masker.subheader-right{top: 10px;left: 40px;height: 8px;width: 10px;}.background-masker.header-bottom{top: 18px;height: 6px;}.background-masker.subheader-left,.background-masker.subheader-right{top: 24px;height: 6px;}.background-masker.header-right,.background-masker.subheader-right{width: auto;left: 300px;right: 0px;}.background-masker.subheader-right{left: 230px;}.background-masker.subheader-bottom{top: 30px;height: 10px;}.background-masker.content-top,.background-masker.content-second-line,.background-masker.content-third-line,.background-masker.content-second-end,.background-masker.content-third-end,.background-masker.content-first-end{top: 40px;left: 0;right: 0;height: 6px;}.background-masker.content-top{height: 20px;}.background-masker.content-first-end,.background-masker.content-second-end,.background-masker.content-third-end{width: auto;left: 380px;right: 0;top: 60px;height: 8px;}.background-masker.content-second-line{top: 68px;}.background-masker.content-second-end{left: 420px;top: 74px;}.background-masker.content-third-line{top: 82px;}.background-masker.content-third-end{left: 300px;top: 88px;}
|
||||
58
public/css/custom.css
vendored
58
public/css/custom.css
vendored
@@ -3,6 +3,64 @@
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.lds-ellipsis {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 33px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
border-radius: 50%;
|
||||
background: #dee2e6;
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 32px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 56px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
100% {
|
||||
transform: translate(24px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.container-fluid {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
10
public/js/plugins/autocomplete.js
vendored
10
public/js/plugins/autocomplete.js
vendored
@@ -104,3 +104,13 @@ function initAutoComplete(htmlClass)
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
function initAutoCompleteOCOM(htmlClass)
|
||||
{
|
||||
$.get('/api/ocom/list?api_token='+api_token, function ( data ) {
|
||||
var ocoms = JSON.parse(data);
|
||||
$("."+htmlClass).each(function ( index ) {
|
||||
autocomplete(document.getElementById(this.id), ocoms);
|
||||
})
|
||||
});
|
||||
}
|
||||
2
public/js/plugins/contextLoader.min.js
vendored
Normal file
2
public/js/plugins/contextLoader.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
contextLoader={};contextLoader.htmlContent='<div class="timeline-item"><div class="animated-background"><div class="background-masker header-top"></div><div class="background-masker header-left"></div><div class="background-masker header-right"></div><div class="background-masker header-bottom"></div><div class="background-masker subheader-left"></div><div class="background-masker subheader-right"></div><div class="background-masker subheader-bottom"></div><div class="background-masker content-top"></div><div class="background-masker content-first-end"></div><div class="background-masker content-second-line"></div><div class="background-masker content-second-end"></div><div class="background-masker content-third-line"></div><div class="background-masker content-third-end"></div></div></div>';contextLoader.addLoader = function(theDiv){document.querySelector(theDiv).innerHTML = contextLoader.htmlContent;}
|
||||
295
public/js/plugins/schedule/editor.js
vendored
Normal file
295
public/js/plugins/schedule/editor.js
vendored
Normal file
@@ -0,0 +1,295 @@
|
||||
var editorTemplate;
|
||||
var nbOfPeriode;
|
||||
var nbOfLevel;
|
||||
var emptyPeriode;
|
||||
|
||||
function initScheduleEditor(id, eventType)
|
||||
{
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/schedule/editor/init/'+eventType+'?api_token='+api_token,
|
||||
success: function (template) {
|
||||
$("#"+id).html(template);
|
||||
for (let pniveau = 1; pniveau <= nbOfLevel; pniveau++) {
|
||||
for (let pperiode = 1; pperiode <= nbOfPeriode; pperiode++) {
|
||||
loadCourse(pniveau,pperiode);
|
||||
}
|
||||
}
|
||||
initAutoComplete("AutoCompleteUser");
|
||||
initAutoCompleteOCOM('AutoCompleteOCOM');
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
|
||||
}
|
||||
})
|
||||
$('.datetimepicker').datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
up: "fa fa-chevron-up",
|
||||
down: "fa fa-chevron-down",
|
||||
previous: 'fa fa-chevron-left',
|
||||
next: 'fa fa-chevron-right',
|
||||
today: 'fa fa-screenshot',
|
||||
clear: 'fa fa-trash',
|
||||
close: 'fa fa-remove'
|
||||
}
|
||||
});
|
||||
$('.richeditor').trumbowyg({
|
||||
lang: 'fr'
|
||||
});
|
||||
$('select').selectpicker();
|
||||
|
||||
}
|
||||
|
||||
function switchUseWeeklyMsg()
|
||||
{
|
||||
|
||||
if($('#use_weekly_msg').is(":checked"))
|
||||
{
|
||||
$('#collmessagedelasemaine').removeClass('d-none');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#collmessagedelasemaine').addClass('d-none');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function switchUseSchedule()
|
||||
{
|
||||
if($('#use_schedule').is(":checked"))
|
||||
{
|
||||
$('#collschedule').removeClass('d-none');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#collschedule').addClass('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
function loadCourse(periode,niveau)
|
||||
{
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/schedule/editor/course/'+niveau+'/'+periode+'?api_token='+api_token,
|
||||
success: function (course) {
|
||||
$("#container-"+niveau+"-"+periode).html(course);
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Impossible de charger les cours ...','top', 'center')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function addPeriode()
|
||||
{
|
||||
var periodeToAdd = nbOfPeriode+1;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/schedule/editor/emptyperiode/'+periodeToAdd+'?api_token='+api_token+'&nblevel='+nbOfLevel,
|
||||
success: function (template) {
|
||||
$('#row-'+nbOfPeriode).after(template);
|
||||
for (let i = 1; i <= nbOfLevel; i++) {
|
||||
loadCourse(periodeToAdd,i);
|
||||
}
|
||||
nbOfPeriode = periodeToAdd;
|
||||
initAutoComplete("AutoCompleteUser");
|
||||
initAutoCompleteOCOM('AutoCompleteOCOM');
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function addLevel()
|
||||
{
|
||||
var levelToAdd = nbOfLevel+1;
|
||||
var oldnbOfLevel = nbOfLevel;
|
||||
nbOfLevel++;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/schedule/editor/levelHeader/'+levelToAdd+'?api_token='+api_token,
|
||||
success: function (template) {
|
||||
$('#levelHeader-'+oldnbOfLevel).after(template)
|
||||
for (let i = 1; i <= nbOfPeriode; i++) {
|
||||
$('#container-'+oldnbOfLevel+'-'+i).after('<div id="container-'+levelToAdd+'-'+i+'" niveau="'+levelToAdd+'" periode="'+i+'" class="col m-0 border-bottom border-right scheduleEditor-course">@loaderDot</div>');
|
||||
}
|
||||
for (let i = 1; i <= nbOfPeriode; i++) {
|
||||
loadCourse(i,levelToAdd);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Impossible d\'ajouter une nouvelle entête de niveau ...','top', 'center')
|
||||
}
|
||||
})
|
||||
setTimeout(function () {
|
||||
initAutoComplete("AutoCompleteUser");
|
||||
initAutoCompleteOCOM('AutoCompleteOCOM');
|
||||
},1000)
|
||||
}
|
||||
|
||||
function loadEventType(date)
|
||||
{
|
||||
var selectInput = $('#type');
|
||||
var id = selectInput.val();
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/schedule/editor/template/'+id+'?api_token='+api_token,
|
||||
success: function (data) {
|
||||
var result = JSON.parse(data);
|
||||
editorTemplate = result;
|
||||
nbOfLevel = editorTemplate.schedule_model.niveaux.length;
|
||||
nbOfPeriode = editorTemplate.schedule_model.periodes.length;
|
||||
initScheduleEditor("scheduleEditor",id)
|
||||
$.each(result, function (i, val) {
|
||||
if(i == "is_mandatory" || i == "use_schedule" || i == "use_weekly_msg")
|
||||
{
|
||||
if(val == 1)
|
||||
{
|
||||
$('#'+i).prop( "checked", true );
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#'+i).prop( "checked", false );
|
||||
}
|
||||
switchUseSchedule();
|
||||
switchUseWeeklyMsg();
|
||||
}
|
||||
else if(i == "begin_time" || i == "end_time")
|
||||
{
|
||||
var foo = $('#'+i);
|
||||
var mdate = moment(date+" "+val);
|
||||
foo.data("DateTimePicker").destroy();
|
||||
foo.datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
up: "fa fa-chevron-up",
|
||||
down: "fa fa-chevron-down",
|
||||
previous: 'fa fa-chevron-left',
|
||||
next: 'fa fa-chevron-right',
|
||||
today: 'fa fa-screenshot',
|
||||
clear: 'fa fa-trash',
|
||||
close: 'fa fa-remove'
|
||||
},
|
||||
date: new Date(mdate)
|
||||
});
|
||||
|
||||
}
|
||||
else if(i == "weekly_msg_publication_time")
|
||||
{
|
||||
var foo = $('#'+i);
|
||||
var mdate = moment(date+" "+result["begin_time"]);
|
||||
mdate.subtract(5, 'days');
|
||||
foo.data("DateTimePicker").destroy();
|
||||
foo.datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
up: "fa fa-chevron-up",
|
||||
down: "fa fa-chevron-down",
|
||||
previous: 'fa fa-chevron-left',
|
||||
next: 'fa fa-chevron-right',
|
||||
today: 'fa fa-screenshot',
|
||||
clear: 'fa fa-trash',
|
||||
close: 'fa fa-remove'
|
||||
},
|
||||
date: new Date(mdate)
|
||||
});
|
||||
|
||||
}
|
||||
else if(i == "location" || i == "name")
|
||||
{
|
||||
var foo = $('#'+i);
|
||||
foo.val(val);
|
||||
}
|
||||
else if(i == "admin_desc")
|
||||
{
|
||||
var foo = $('#'+i);
|
||||
foo.trumbowyg('html', val);
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Impossible de charger le type d\'évenement ...','top', 'center')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function updateCourseName(niveau, periode) {
|
||||
setTimeout(function(){
|
||||
let val = $('#ocom_n'+niveau+'_p'+periode).val();
|
||||
if(val != "")
|
||||
{
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/ocom/'+val+'/name?api_token='+api_token,
|
||||
success: function (data) {
|
||||
if(data != null && data != "")
|
||||
{
|
||||
$('#name_n'+niveau+'_p'+periode).val(data);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error','Erreur impossible de charger l\'objectif de rendement ...','top', 'center')
|
||||
}
|
||||
})
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
function selectCourseMode(mode, niveau, periode)
|
||||
{
|
||||
if(mode == "course")
|
||||
{
|
||||
$('#descContainer'+niveau+'-'+periode).addClass('d-none');
|
||||
$('#isDoneContainer'+niveau+'-'+periode).removeClass('d-none');
|
||||
$('#isDoneContainer'+niveau+'-'+periode).addClass('d-flex');
|
||||
$('#OCOMContainer'+niveau+'-'+periode).removeClass('d-none');
|
||||
$('#nameContainer'+niveau+'-'+periode).removeClass('d-none');
|
||||
$('#modeSwitchC'+niveau+'-'+periode).addClass('active');
|
||||
$('#modeSwitchO'+niveau+'-'+periode).removeClass('active');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#descContainer'+niveau+'-'+periode).removeClass('d-none');
|
||||
$('#isDoneContainer'+niveau+'-'+periode).addClass('d-none');
|
||||
$('#isDoneContainer'+niveau+'-'+periode).removeClass('d-flex');
|
||||
$('#OCOMContainer'+niveau+'-'+periode).addClass('d-none');
|
||||
$('#nameContainer'+niveau+'-'+periode).addClass('d-none');
|
||||
$('#modeSwitchC'+niveau+'-'+periode).removeClass('active');
|
||||
$('#modeSwitchO'+niveau+'-'+periode).addClass('active');
|
||||
}
|
||||
}
|
||||
|
||||
function selectCourseModePeriode(mode,periode)
|
||||
{
|
||||
for (let i = 0; i < nbOfLevel; i++) {
|
||||
selectCourseMode(mode,i+1,periode);
|
||||
}
|
||||
}
|
||||
|
||||
function selectCourseModeNiveau(mode,niveau)
|
||||
{
|
||||
for (let i = 0; i < nbOfPeriode; i++) {
|
||||
selectCourseMode(mode,niveau,i+1);
|
||||
}
|
||||
}
|
||||
|
||||
function updatePlantext(toggle,id)
|
||||
{
|
||||
if($('#'+toggle).is(":checked"))
|
||||
{
|
||||
$('#'+id).removeClass('text-warning');
|
||||
$('#'+id).addClass('text-success');
|
||||
$('#'+id).html('Plan de cours remis')
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#'+id).addClass('text-warning');
|
||||
$('#'+id).removeClass('text-success');
|
||||
$('#'+id).html('Plan de cours non remis')
|
||||
}
|
||||
}
|
||||
58
resources/custom.css
vendored
58
resources/custom.css
vendored
@@ -3,6 +3,64 @@
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.lds-ellipsis {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 33px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
border-radius: 50%;
|
||||
background: #dee2e6;
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 32px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 56px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
100% {
|
||||
transform: translate(24px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.container-fluid {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
614
resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js
vendored
Normal file
614
resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js
vendored
Normal file
@@ -0,0 +1,614 @@
|
||||
import jquery from 'jquery'
|
||||
|
||||
const $ = jquery || window.jQuery || window.$
|
||||
|
||||
class BootstrapSwitch {
|
||||
constructor (element, options = {}) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend(
|
||||
{},
|
||||
$.fn.bootstrapSwitch.defaults,
|
||||
this._getElementOptions(),
|
||||
options
|
||||
)
|
||||
this.prevOptions = {}
|
||||
this.$wrapper = $('<div>', {
|
||||
class: () => {
|
||||
const classes = []
|
||||
classes.push(this.options.state ? 'on' : 'off')
|
||||
if (this.options.size) {
|
||||
classes.push(this.options.size)
|
||||
}
|
||||
if (this.options.disabled) {
|
||||
classes.push('disabled')
|
||||
}
|
||||
if (this.options.readonly) {
|
||||
classes.push('readonly')
|
||||
}
|
||||
if (this.options.indeterminate) {
|
||||
classes.push('indeterminate')
|
||||
}
|
||||
if (this.options.inverse) {
|
||||
classes.push('inverse')
|
||||
}
|
||||
if (this.$element.attr('id')) {
|
||||
classes.push(`id-${this.$element.attr('id')}`)
|
||||
}
|
||||
return classes
|
||||
.map(this._getClass.bind(this))
|
||||
.concat([this.options.baseClass], this._getClasses(this.options.wrapperClass))
|
||||
.join(' ')
|
||||
}
|
||||
})
|
||||
this.$container = $('<div>', { class: this._getClass('container') })
|
||||
this.$on = $('<span>', {
|
||||
html: this.options.onText,
|
||||
class: `${this._getClass('handle-on')} ${this._getClass(this.options.onColor)}`
|
||||
})
|
||||
this.$off = $('<span>', {
|
||||
html: this.options.offText,
|
||||
class: `${this._getClass('handle-off')} ${this._getClass(this.options.offColor)}`
|
||||
})
|
||||
this.$label = $('<span>', {
|
||||
html: this.options.labelText,
|
||||
class: this._getClass('label')
|
||||
})
|
||||
|
||||
this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element))
|
||||
this.$element.on('switchChange.bootstrapSwitch', (...args) => {
|
||||
if (this.options.onSwitchChange.apply(element, args) === false) {
|
||||
if (this.$element.is(':radio')) {
|
||||
$(`[name="${this.$element.attr('name')}"]`).trigger('previousState.bootstrapSwitch', true)
|
||||
} else {
|
||||
this.$element.trigger('previousState.bootstrapSwitch', true)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
this.$container = this.$element.wrap(this.$container).parent()
|
||||
this.$wrapper = this.$container.wrap(this.$wrapper).parent()
|
||||
this.$element
|
||||
.before(this.options.inverse ? this.$off : this.$on)
|
||||
.before(this.$label)
|
||||
.before(this.options.inverse ? this.$on : this.$off)
|
||||
|
||||
if (this.options.indeterminate) {
|
||||
this.$element.prop('indeterminate', true)
|
||||
}
|
||||
|
||||
this._init()
|
||||
this._elementHandlers()
|
||||
this._handleHandlers()
|
||||
this._labelHandlers()
|
||||
this._formHandler()
|
||||
this._externalLabelHandler()
|
||||
this.$element.trigger('init.bootstrapSwitch', this.options.state)
|
||||
}
|
||||
|
||||
setPrevOptions () {
|
||||
this.prevOptions = { ...this.options }
|
||||
}
|
||||
|
||||
state (value, skip) {
|
||||
if (typeof value === 'undefined') { return this.options.state }
|
||||
if (
|
||||
(this.options.disabled || this.options.readonly) ||
|
||||
(this.options.state && !this.options.radioAllOff && this.$element.is(':radio'))
|
||||
) { return this.$element }
|
||||
if (this.$element.is(':radio')) {
|
||||
$(`[name="${this.$element.attr('name')}"]`).trigger('setPreviousOptions.bootstrapSwitch')
|
||||
} else {
|
||||
this.$element.trigger('setPreviousOptions.bootstrapSwitch')
|
||||
}
|
||||
if (this.options.indeterminate) {
|
||||
this.indeterminate(false)
|
||||
}
|
||||
this.$element
|
||||
.prop('checked', Boolean(value))
|
||||
.trigger('change.bootstrapSwitch', skip)
|
||||
return this.$element
|
||||
}
|
||||
|
||||
toggleState (skip) {
|
||||
if (this.options.disabled || this.options.readonly) { return this.$element }
|
||||
if (this.options.indeterminate) {
|
||||
this.indeterminate(false)
|
||||
return this.state(true)
|
||||
} else {
|
||||
return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip)
|
||||
}
|
||||
}
|
||||
|
||||
size (value) {
|
||||
if (typeof value === 'undefined') { return this.options.size }
|
||||
if (this.options.size != null) {
|
||||
this.$wrapper.removeClass(this._getClass(this.options.size))
|
||||
}
|
||||
if (value) {
|
||||
this.$wrapper.addClass(this._getClass(value))
|
||||
}
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
this.options.size = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
animate (value) {
|
||||
if (typeof value === 'undefined') { return this.options.animate }
|
||||
if (this.options.animate === Boolean(value)) { return this.$element }
|
||||
return this.toggleAnimate()
|
||||
}
|
||||
|
||||
toggleAnimate () {
|
||||
this.options.animate = !this.options.animate
|
||||
this.$wrapper.toggleClass(this._getClass('animate'))
|
||||
return this.$element
|
||||
}
|
||||
|
||||
disabled (value) {
|
||||
if (typeof value === 'undefined') { return this.options.disabled }
|
||||
if (this.options.disabled === Boolean(value)) { return this.$element }
|
||||
return this.toggleDisabled()
|
||||
}
|
||||
|
||||
toggleDisabled () {
|
||||
this.options.disabled = !this.options.disabled
|
||||
this.$element.prop('disabled', this.options.disabled)
|
||||
this.$wrapper.toggleClass(this._getClass('disabled'))
|
||||
return this.$element
|
||||
}
|
||||
|
||||
readonly (value) {
|
||||
if (typeof value === 'undefined') { return this.options.readonly }
|
||||
if (this.options.readonly === Boolean(value)) { return this.$element }
|
||||
return this.toggleReadonly()
|
||||
}
|
||||
|
||||
toggleReadonly () {
|
||||
this.options.readonly = !this.options.readonly
|
||||
this.$element.prop('readonly', this.options.readonly)
|
||||
this.$wrapper.toggleClass(this._getClass('readonly'))
|
||||
return this.$element
|
||||
}
|
||||
|
||||
indeterminate (value) {
|
||||
if (typeof value === 'undefined') { return this.options.indeterminate }
|
||||
if (this.options.indeterminate === Boolean(value)) { return this.$element }
|
||||
return this.toggleIndeterminate()
|
||||
}
|
||||
|
||||
toggleIndeterminate () {
|
||||
this.options.indeterminate = !this.options.indeterminate
|
||||
this.$element.prop('indeterminate', this.options.indeterminate)
|
||||
this.$wrapper.toggleClass(this._getClass('indeterminate'))
|
||||
this._containerPosition()
|
||||
return this.$element
|
||||
}
|
||||
|
||||
inverse (value) {
|
||||
if (typeof value === 'undefined') { return this.options.inverse }
|
||||
if (this.options.inverse === Boolean(value)) { return this.$element }
|
||||
return this.toggleInverse()
|
||||
}
|
||||
|
||||
toggleInverse () {
|
||||
this.$wrapper.toggleClass(this._getClass('inverse'))
|
||||
const $on = this.$on.clone(true)
|
||||
const $off = this.$off.clone(true)
|
||||
this.$on.replaceWith($off)
|
||||
this.$off.replaceWith($on)
|
||||
this.$on = $off
|
||||
this.$off = $on
|
||||
this.options.inverse = !this.options.inverse
|
||||
return this.$element
|
||||
}
|
||||
|
||||
onColor (value) {
|
||||
if (typeof value === 'undefined') { return this.options.onColor }
|
||||
if (this.options.onColor) {
|
||||
this.$on.removeClass(this._getClass(this.options.onColor))
|
||||
}
|
||||
this.$on.addClass(this._getClass(value))
|
||||
this.options.onColor = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
offColor (value) {
|
||||
if (typeof value === 'undefined') { return this.options.offColor }
|
||||
if (this.options.offColor) {
|
||||
this.$off.removeClass(this._getClass(this.options.offColor))
|
||||
}
|
||||
this.$off.addClass(this._getClass(value))
|
||||
this.options.offColor = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
onText (value) {
|
||||
if (typeof value === 'undefined') { return this.options.onText }
|
||||
this.$on.html(value)
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
this.options.onText = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
offText (value) {
|
||||
if (typeof value === 'undefined') { return this.options.offText }
|
||||
this.$off.html(value)
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
this.options.offText = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
labelText (value) {
|
||||
if (typeof value === 'undefined') { return this.options.labelText }
|
||||
this.$label.html(value)
|
||||
this._width()
|
||||
this.options.labelText = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
handleWidth (value) {
|
||||
if (typeof value === 'undefined') { return this.options.handleWidth }
|
||||
this.options.handleWidth = value
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
return this.$element
|
||||
}
|
||||
|
||||
labelWidth (value) {
|
||||
if (typeof value === 'undefined') { return this.options.labelWidth }
|
||||
this.options.labelWidth = value
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
return this.$element
|
||||
}
|
||||
|
||||
baseClass (value) {
|
||||
return this.options.baseClass
|
||||
}
|
||||
|
||||
wrapperClass (value) {
|
||||
if (typeof value === 'undefined') { return this.options.wrapperClass }
|
||||
if (!value) {
|
||||
value = $.fn.bootstrapSwitch.defaults.wrapperClass
|
||||
}
|
||||
this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' '))
|
||||
this.$wrapper.addClass(this._getClasses(value).join(' '))
|
||||
this.options.wrapperClass = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
radioAllOff (value) {
|
||||
if (typeof value === 'undefined') { return this.options.radioAllOff }
|
||||
const val = Boolean(value)
|
||||
if (this.options.radioAllOff === val) { return this.$element }
|
||||
this.options.radioAllOff = val
|
||||
return this.$element
|
||||
}
|
||||
|
||||
onInit (value) {
|
||||
if (typeof value === 'undefined') { return this.options.onInit }
|
||||
if (!value) {
|
||||
value = $.fn.bootstrapSwitch.defaults.onInit
|
||||
}
|
||||
this.options.onInit = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
onSwitchChange (value) {
|
||||
if (typeof value === 'undefined') {
|
||||
return this.options.onSwitchChange
|
||||
}
|
||||
if (!value) {
|
||||
value = $.fn.bootstrapSwitch.defaults.onSwitchChange
|
||||
}
|
||||
this.options.onSwitchChange = value
|
||||
return this.$element
|
||||
}
|
||||
|
||||
destroy () {
|
||||
const $form = this.$element.closest('form')
|
||||
if ($form.length) {
|
||||
$form.off('reset.bootstrapSwitch').removeData('bootstrap-switch')
|
||||
}
|
||||
this.$container
|
||||
.children()
|
||||
.not(this.$element)
|
||||
.remove()
|
||||
this.$element
|
||||
.unwrap()
|
||||
.unwrap()
|
||||
.off('.bootstrapSwitch')
|
||||
.removeData('bootstrap-switch')
|
||||
return this.$element
|
||||
}
|
||||
|
||||
_getElementOptions () {
|
||||
return {
|
||||
state: this.$element.is(':checked'),
|
||||
size: this.$element.data('size'),
|
||||
animate: this.$element.data('animate'),
|
||||
disabled: this.$element.is(':disabled'),
|
||||
readonly: this.$element.is('[readonly]'),
|
||||
indeterminate: this.$element.data('indeterminate'),
|
||||
inverse: this.$element.data('inverse'),
|
||||
radioAllOff: this.$element.data('radio-all-off'),
|
||||
onColor: this.$element.data('on-color'),
|
||||
offColor: this.$element.data('off-color'),
|
||||
onText: this.$element.data('on-text'),
|
||||
offText: this.$element.data('off-text'),
|
||||
labelText: this.$element.data('label-text'),
|
||||
handleWidth: this.$element.data('handle-width'),
|
||||
labelWidth: this.$element.data('label-width'),
|
||||
baseClass: this.$element.data('base-class'),
|
||||
wrapperClass: this.$element.data('wrapper-class')
|
||||
}
|
||||
}
|
||||
|
||||
_width () {
|
||||
const $handles = this.$on
|
||||
.add(this.$off)
|
||||
.add(this.$label)
|
||||
.css('width', '')
|
||||
const handleWidth = this.options.handleWidth === 'auto'
|
||||
? Math.round(Math.max(this.$on.width(), this.$off.width()))
|
||||
: this.options.handleWidth
|
||||
$handles.width(handleWidth)
|
||||
this.$label.width((index, width) => {
|
||||
if (this.options.labelWidth !== 'auto') { return this.options.labelWidth }
|
||||
if (width < handleWidth) { return handleWidth }
|
||||
return width
|
||||
})
|
||||
this._handleWidth = this.$on.outerWidth()
|
||||
this._labelWidth = this.$label.outerWidth()
|
||||
this.$container.width((this._handleWidth * 2) + this._labelWidth)
|
||||
return this.$wrapper.width(this._handleWidth + this._labelWidth)
|
||||
}
|
||||
|
||||
_containerPosition (state = this.options.state, callback) {
|
||||
this.$container.css('margin-left', () => {
|
||||
const values = [0, `-${this._handleWidth}px`]
|
||||
if (this.options.indeterminate) {
|
||||
return `-${this._handleWidth / 2}px`
|
||||
}
|
||||
if (state) {
|
||||
if (this.options.inverse) {
|
||||
return values[1]
|
||||
} else {
|
||||
return values[0]
|
||||
}
|
||||
} else {
|
||||
if (this.options.inverse) {
|
||||
return values[0]
|
||||
} else {
|
||||
return values[1]
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
_init () {
|
||||
const init = () => {
|
||||
this.setPrevOptions()
|
||||
this._width()
|
||||
this._containerPosition()
|
||||
setTimeout(() => {
|
||||
if (this.options.animate) {
|
||||
return this.$wrapper.addClass(this._getClass('animate'))
|
||||
}
|
||||
}, 50)
|
||||
}
|
||||
if (this.$wrapper.is(':visible')) {
|
||||
init()
|
||||
return
|
||||
}
|
||||
const initInterval = window.setInterval(() => {
|
||||
if (this.$wrapper.is(':visible')) {
|
||||
init()
|
||||
return window.clearInterval(initInterval)
|
||||
}
|
||||
}, 50)
|
||||
}
|
||||
|
||||
_elementHandlers () {
|
||||
return this.$element.on({
|
||||
'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this),
|
||||
|
||||
'previousState.bootstrapSwitch': () => {
|
||||
this.options = this.prevOptions
|
||||
if (this.options.indeterminate) {
|
||||
this.$wrapper.addClass(this._getClass('indeterminate'))
|
||||
}
|
||||
this.$element
|
||||
.prop('checked', this.options.state)
|
||||
.trigger('change.bootstrapSwitch', true)
|
||||
},
|
||||
|
||||
'change.bootstrapSwitch': (event, skip) => {
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
const state = this.$element.is(':checked')
|
||||
this._containerPosition(state)
|
||||
if (state === this.options.state) {
|
||||
return
|
||||
}
|
||||
this.options.state = state
|
||||
this.$wrapper
|
||||
.toggleClass(this._getClass('off'))
|
||||
.toggleClass(this._getClass('on'))
|
||||
if (!skip) {
|
||||
if (this.$element.is(':radio')) {
|
||||
$(`[name="${this.$element.attr('name')}"]`)
|
||||
.not(this.$element)
|
||||
.prop('checked', false)
|
||||
.trigger('change.bootstrapSwitch', true)
|
||||
}
|
||||
this.$element.trigger('switchChange.bootstrapSwitch', [state])
|
||||
}
|
||||
},
|
||||
|
||||
'focus.bootstrapSwitch': event => {
|
||||
event.preventDefault()
|
||||
this.$wrapper.addClass(this._getClass('focused'))
|
||||
},
|
||||
|
||||
'blur.bootstrapSwitch': event => {
|
||||
event.preventDefault()
|
||||
this.$wrapper.removeClass(this._getClass('focused'))
|
||||
},
|
||||
|
||||
'keydown.bootstrapSwitch': event => {
|
||||
if (!event.which || this.options.disabled || this.options.readonly) {
|
||||
return
|
||||
}
|
||||
if (event.which === 37 || event.which === 39) {
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
this.state(event.which === 39)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
_handleHandlers () {
|
||||
this.$on.on('click.bootstrapSwitch', event => {
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
this.state(false)
|
||||
return this.$element.trigger('focus.bootstrapSwitch')
|
||||
})
|
||||
return this.$off.on('click.bootstrapSwitch', event => {
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
this.state(true)
|
||||
return this.$element.trigger('focus.bootstrapSwitch')
|
||||
})
|
||||
}
|
||||
|
||||
_labelHandlers () {
|
||||
const handlers = {
|
||||
click (event) { event.stopPropagation() },
|
||||
|
||||
'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': event => {
|
||||
if (this._dragStart || this.options.disabled || this.options.readonly) {
|
||||
return
|
||||
}
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
this._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(this.$container.css('margin-left'), 10)
|
||||
if (this.options.animate) {
|
||||
this.$wrapper.removeClass(this._getClass('animate'))
|
||||
}
|
||||
this.$element.trigger('focus.bootstrapSwitch')
|
||||
},
|
||||
|
||||
'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': event => {
|
||||
if (this._dragStart == null) { return }
|
||||
const difference = (event.pageX || event.originalEvent.touches[0].pageX) - this._dragStart
|
||||
event.preventDefault()
|
||||
if (difference < -this._handleWidth || difference > 0) { return }
|
||||
this._dragEnd = difference
|
||||
this.$container.css('margin-left', `${this._dragEnd}px`)
|
||||
},
|
||||
|
||||
'mouseup.bootstrapSwitch touchend.bootstrapSwitch': event => {
|
||||
if (!this._dragStart) { return }
|
||||
event.preventDefault()
|
||||
if (this.options.animate) {
|
||||
this.$wrapper.addClass(this._getClass('animate'))
|
||||
}
|
||||
if (this._dragEnd) {
|
||||
const state = this._dragEnd > -(this._handleWidth / 2)
|
||||
this._dragEnd = false
|
||||
this.state(this.options.inverse ? !state : state)
|
||||
} else {
|
||||
this.state(!this.options.state)
|
||||
}
|
||||
this._dragStart = false
|
||||
},
|
||||
|
||||
'mouseleave.bootstrapSwitch': () => {
|
||||
this.$label.trigger('mouseup.bootstrapSwitch')
|
||||
}
|
||||
}
|
||||
this.$label.on(handlers)
|
||||
}
|
||||
|
||||
_externalLabelHandler () {
|
||||
const $externalLabel = this.$element.closest('label')
|
||||
$externalLabel.on('click', event => {
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
if (event.target === $externalLabel[0]) {
|
||||
this.toggleState()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
_formHandler () {
|
||||
const $form = this.$element.closest('form')
|
||||
if ($form.data('bootstrap-switch')) {
|
||||
return
|
||||
}
|
||||
$form
|
||||
.on('reset.bootstrapSwitch', () => {
|
||||
window.setTimeout(() => {
|
||||
$form.find('input')
|
||||
.filter(function () { return $(this).data('bootstrap-switch') })
|
||||
.each(function () { return $(this).bootstrapSwitch('state', this.checked) })
|
||||
}, 1)
|
||||
})
|
||||
.data('bootstrap-switch', true)
|
||||
}
|
||||
|
||||
_getClass (name) {
|
||||
return `${this.options.baseClass}-${name}`
|
||||
}
|
||||
|
||||
_getClasses (classes) {
|
||||
if (!$.isArray(classes)) {
|
||||
return [this._getClass(classes)]
|
||||
}
|
||||
return classes.map(this._getClass.bind(this))
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.bootstrapSwitch = function (option, ...args) {
|
||||
function reducer (ret, next) {
|
||||
const $this = $(next)
|
||||
const existingData = $this.data('bootstrap-switch')
|
||||
const data = existingData || new BootstrapSwitch(next, option)
|
||||
if (!existingData) {
|
||||
$this.data('bootstrap-switch', data)
|
||||
}
|
||||
if (typeof option === 'string') {
|
||||
return data[option].apply(data, args)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
return Array.prototype.reduce.call(this, reducer, this)
|
||||
}
|
||||
$.fn.bootstrapSwitch.Constructor = BootstrapSwitch
|
||||
$.fn.bootstrapSwitch.defaults = {
|
||||
state: true,
|
||||
size: null,
|
||||
animate: true,
|
||||
disabled: false,
|
||||
readonly: false,
|
||||
indeterminate: false,
|
||||
inverse: false,
|
||||
radioAllOff: false,
|
||||
onColor: 'primary',
|
||||
offColor: 'default',
|
||||
onText: 'ON',
|
||||
offText: 'OFF',
|
||||
labelText: ' ',
|
||||
handleWidth: 'auto',
|
||||
labelWidth: 'auto',
|
||||
baseClass: 'bootstrap-switch',
|
||||
wrapperClass: 'wrapper',
|
||||
onInit: () => {},
|
||||
onSwitchChange: () => {}
|
||||
}
|
||||
74
resources/views/admin/schedule/editor/course.blade.php
Normal file
74
resources/views/admin/schedule/editor/course.blade.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<div class="row bg-light">
|
||||
<div class="col-8 pr-0 m-auto d-flex">
|
||||
<div class="pr-0 m-auto d-flex" id="isDoneContainer{{$niveau}}-{{$periode}}">
|
||||
<div class="togglebutton">
|
||||
<label class="m-auto">
|
||||
<input type="checkbox" id="plan_n{{$niveau}}_p{{$periode}}" name="plan_n{{$niveau}}_p{{$periode}}" onchange="updatePlantext('plan_n{{$niveau}}_p{{$periode}}','planText_n{{$niveau}}_p{{$periode}}')">
|
||||
<span class="toggle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="text-warning p-1 justify-content-center" id="planText_n{{$niveau}}_p{{$periode}}">
|
||||
Plan de cours non remis
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 text-right">
|
||||
<button type="button" class="btn btn-sm btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<button id="modeSwitchC{{$niveau}}-{{$periode}}" class="btn-secondary dropdown-item active m-1" onclick="selectCourseMode('course',{{$niveau}},{{$periode}})">Mode "Cours" pour cette période</button>
|
||||
<button id="modeSwitchO{{$niveau}}-{{$periode}}" class="btn-secondary dropdown-item m-1" onclick="selectCourseMode('other',{{$niveau}},{{$periode}})">Mode "Autre" pour cette période</button>
|
||||
<div class="dropdown-divider"></div>
|
||||
<button class="btn-secondary dropdown-item" href="#">Réinitialiser</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-content text-center">
|
||||
<div class="tab-pane active">
|
||||
<div class="row pt-2">
|
||||
<div class="col-12 d-none" id="descContainer{{$niveau}}-{{$periode}}">
|
||||
<div class="form-group">
|
||||
<label for="exampleFormControlTextarea1">Description de la période</label>
|
||||
<textarea class="form-control" name="desc_n{{$niveau}}_p{{$periode}}" id="exampleFormControlTextarea1" rows="2"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 mb-1" id="OCOMContainer{{$niveau}}-{{$periode}}">
|
||||
<div class="form-group label-floating">
|
||||
<div class="autocomplete">
|
||||
<input type="text" placeholder="OCOM du cours" id="ocom_n{{$niveau}}_p{{$periode}}" name="ocom_n{{$niveau}}_p{{$periode}}" class="form-control AutoCompleteOCOM" aria-describedby="nameHelp" autocomplete="off" value="M103.02" required onblur="updateCourseName('{{$niveau}}','{{$periode}}')">
|
||||
</div>
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">done</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6" id="nameContainer{{$niveau}}-{{$periode}}">
|
||||
<div class="form-group label-floating">
|
||||
<input type="text" placeholder="Nom du cours" id="name_n{{$niveau}}_p{{$periode}}" name="name_n{{$niveau}}_p{{$periode}}" value="Nom du cours" class="form-control" required />
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">clear</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 mb-1">
|
||||
<div class="form-group label-floating">
|
||||
<input type="text" placeholder="Lieu du cours" name="location_n{{$niveau}}_p{{$periode}}" value="Lieu du cours" class="form-control" required/>
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">done</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group label-floating">
|
||||
<div class="autocomplete">
|
||||
<input type="text" placeholder="Nom de l'instructeur" id="instruc_n{{$niveau}}_p{{$periode}}" name="instruc_n{{$niveau}}_p{{$periode}}" value="Mathieu" class="form-control AutoCompleteUser" aria-describedby="nameHelp" autocomplete="off" required>
|
||||
</div>
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">done</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
3
resources/views/admin/schedule/editor/level.blade.php
Normal file
3
resources/views/admin/schedule/editor/level.blade.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<div id="container-{{$level_id}}-{{$periode_id}}" niveau="{{$level_id}}" periode="{{$periode_id}}" class="col m-0 border-bottom border-right scheduleEditor-course">
|
||||
@loaderDot
|
||||
</div>
|
||||
21
resources/views/admin/schedule/editor/levelHeader.blade.php
Normal file
21
resources/views/admin/schedule/editor/levelHeader.blade.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<div id="levelHeader-{{$level_id}}" class="col border-right border-bottom bg-dark text-white">
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
<div class="form-group label-floating">
|
||||
<input type="text" placeholder="Niveau" name="level_name_{{$level_id}}" class="form-control text-white" value="{{$level_name}}" />
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">clear</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 text-right">
|
||||
<button type="button" class="btn btn-link btn-sm dropdown-toggle dropdown-toggle-split text-white" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<button id="modeSwitchPeriodeC{{$level_id}}" class="btn-secondary dropdown-item m-1" onclick="selectCourseModeNiveau('course',{{$level_id}})">Mode "Cours" pour toutes les périodes</button>
|
||||
<button id="modeSwitchPeriodeO{{$level_id}}" class="btn-secondary dropdown-item m-1" onclick="selectCourseModeNiveau('other',{{$level_id}})">Mode "Autre" pour toutes les période</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
43
resources/views/admin/schedule/editor/periode.blade.php
Normal file
43
resources/views/admin/schedule/editor/periode.blade.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="row" id="row-{{$periode_id}}">
|
||||
<div class="col-2 d-inline border-right border-bottom bg-light">
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
<div class="form-group label-floating">
|
||||
<input type="text" placeholder="Période" name="periode_name_{{$periode_id}}" class="form-control" value="{{$periode_name}}" />
|
||||
<span class="form-control-feedback">
|
||||
<i class="material-icons">clear</i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 text-right">
|
||||
<button type="button" class="btn btn-sm btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<button id="modeSwitchPeriodeC{{$periode_id}}" class="btn-secondary dropdown-item m-1" onclick="selectCourseModePeriode('course',{{$periode_id}})">Mode "Cours" pour toute la période</button>
|
||||
<button id="modeSwitchPeriodeO{{$periode_id}}" class="btn-secondary dropdown-item m-1" onclick="selectCourseModePeriode('other',{{$periode_id}})">Mode "Autre" pour toute la période</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group label-floating">
|
||||
<input type="time" class="form-control" name="periode_begin_time_{{$periode_id}}" value="{{$periode_begin_time}}" />
|
||||
<span class="form-control-feedback"><i class="material-icons">clear</i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group label-floating">
|
||||
<input type="time" class="form-control" name="periode_end_time_{{$periode_id}}" value="{{$periode_end_time}}" />
|
||||
<span class="form-control-feedback"><i class="material-icons">clear</i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@for($i = 1; $i <= $nbLevel;$i++)
|
||||
@include('admin.schedule.editor.level',['periode_id' => $periode_id,'level_id' => $i])
|
||||
@endfor
|
||||
<div class="col-1">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
31
resources/views/admin/schedule/editor/template.blade.php
Normal file
31
resources/views/admin/schedule/editor/template.blade.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<div class="row">
|
||||
<div class="col-2 p-3 border-right border-bottom bg-dark text-white">
|
||||
<b>
|
||||
Niveau/Periode
|
||||
</b>
|
||||
</div>
|
||||
@foreach($eventType->schedule_model['niveaux'] as $niveau)
|
||||
@include('admin.schedule.editor.levelHeader',['level_id' => $loop->index+1,'level_name' => $niveau['name']])
|
||||
@endforeach
|
||||
<div class="col-1">
|
||||
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="addLevel()">
|
||||
<i class="material-icons">add</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@foreach($eventType->schedule_model['periodes'] as $periode)
|
||||
@include('admin.schedule.editor.periode',[
|
||||
'periode_name' => $periode['name'],
|
||||
'periode_begin_time' => $periode['begin_time'],
|
||||
'periode_end_time' => $periode['end_time'],
|
||||
'periode_id' => $loop->index+1,
|
||||
'nbLevel' => count($eventType->schedule_model['niveaux'])
|
||||
])
|
||||
@endforeach
|
||||
<div class="row">
|
||||
<div class="col-2 p-2">
|
||||
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="addPeriode()">
|
||||
<i class="material-icons">add</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
<div class="card ">
|
||||
<div class="card-header card-header-primary">
|
||||
<h4 class="card-title">Ajouter un événement à l'horaire</h4>
|
||||
@@ -9,47 +10,168 @@
|
||||
<div class="card-body ">
|
||||
<form action="/admin/schedule/event/add" method="POST">
|
||||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<div class="row" id="container">
|
||||
<div id="accordion" class="col-12" role="tablist">
|
||||
<div class="card card-collapse">
|
||||
<div class="card-header" role="tab" id="headingOne">
|
||||
<h5 class="mb-0">
|
||||
<a data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||||
<b>Information générale</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseOne" class="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="type">Type d'événement</label>
|
||||
<select class="form-control selectpicker" data-style="btn btn-link" name="type" id="type" onchange="switchType('{{$date}}')" required>
|
||||
@foreach (\App\ComplementaryActivity::all() as $item)
|
||||
<option value="{{$item->id}}">{{$item->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<label for="name">Nom de l'événement</label>
|
||||
<input type="text" name="name" id="name" class="form-control" placeholder="" aria-describedby="nameHelp" required>
|
||||
<small id="nameHelp" class="text-muted">Veuillez entrer le nom de l'événement</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
<div class="form-group">
|
||||
<label class="label-control">Date et Heure de début</label>
|
||||
<input name="begin_time" type="text" id="begin_time" class="form-control datetimepicker" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
<div class="form-group">
|
||||
<label class="label-control">Date et Heure de fin</label>
|
||||
<input name="end_time" type="text" id="end_time" class="form-control datetimepicker" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="name">Lieux</label>
|
||||
<input type="text" name="location" id="location" class="form-control" placeholder="" aria-describedby="nameHelp" required>
|
||||
<small id="nameHelp" class="text-muted">Veuillez entrer le lieu de l'événement</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 mt-4">
|
||||
<label class="mb-0" for="desc">Description</label>
|
||||
<div class="form-group">
|
||||
<textarea class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-collapse d-none" id="collmessagedelasemaine">
|
||||
<div class="card-header" role="tab" id="headingTwo">
|
||||
<h5 class="mb-0">
|
||||
<a class="collapsed" data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||
<b>Message de la semaine</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="label-control">Date et heure de publication des messages de la semaine</label>
|
||||
<input name="date_msg" type="text" id="weekly_msg_publication_time" class="form-control datetimepicker"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label class="mb-0" for="desc">Message de le semaine</label>
|
||||
<div class="form-group">
|
||||
<textarea class="form-control richeditor" name="msg" id="msg" rows="6">{{\App\Config::getData('default_weekly_msg')}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-collapse d-none" id="collschedule">
|
||||
<div class="card-header" role="tab" id="headingThree">
|
||||
<h5 class="mb-0">
|
||||
<a class="collapsed" data-toggle="collapse" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
|
||||
<b>Horaire</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion">
|
||||
<div class="card-body" style="overflow: scroll">
|
||||
<div id="scheduleEditor" class="m-3" style="width: 110vw">
|
||||
@loaderDot
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="container">
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary mt-5">Sauvegarder</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="card ">
|
||||
<div class="card-header card-header-primary">
|
||||
<h4 class="card-title">Options</h4>
|
||||
</div>
|
||||
<div class="card-body ">
|
||||
<div class="form-group">
|
||||
<label for="type">Type d'événement</label>
|
||||
<small class="text-muted d-block">Choisir le type d'activité supprimera vos modification actuel</small>
|
||||
<select class="form-control selectpicker" data-style="btn btn-link" name="type" id="type" onchange="loadEventType('{{$date}}')" required>
|
||||
@foreach (\App\EventType::all() as $item)
|
||||
<option value="{{$item->id}}">{{$item->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="m-0" for="type">Activité obligatoire</label>
|
||||
<small class="text-muted d-block">L'activité est-elle obligatoire pour tout les cadets ?</small>
|
||||
<div class="togglebutton">
|
||||
<label>
|
||||
<input id="is_mandatory" name="is_mandatory" type="checkbox">
|
||||
<span class="toggle"></span>
|
||||
L'activité est obligatoire
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="m-0" for="type">Message de la semaine</label>
|
||||
<small class="text-muted d-block">Inclure des messages de la semaine avec l'activité ?</small>
|
||||
<div class="togglebutton">
|
||||
<label>
|
||||
<input id="use_weekly_msg" type="checkbox" name="use_weekly_msg" onchange="switchUseWeeklyMsg()">
|
||||
<span class="toggle"></span>
|
||||
Avec message de la semaine
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="m-0" for="type">Horaire</label>
|
||||
<small class="text-muted d-block">Inclure un horaire avec l'activité ?</small>
|
||||
<div class="togglebutton">
|
||||
<label>
|
||||
<input type="checkbox" id="use_schedule" name="use_schedule" checked onchange="switchUseSchedule()">
|
||||
<span class="toggle"></span>
|
||||
Avec horaire
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('custom_scripts')
|
||||
<script src="/js/calendar.js"></script>
|
||||
<script>
|
||||
switchType('{{$date}}')
|
||||
$('.datetimepicker').datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
up: "fa fa-chevron-up",
|
||||
down: "fa fa-chevron-down",
|
||||
previous: 'fa fa-chevron-left',
|
||||
next: 'fa fa-chevron-right',
|
||||
today: 'fa fa-screenshot',
|
||||
clear: 'fa fa-trash',
|
||||
close: 'fa fa-remove'
|
||||
}
|
||||
});
|
||||
$('select').selectpicker();
|
||||
</script>
|
||||
|
||||
<script src="/js/calendar.js"></script>
|
||||
<script src="/js/plugins/schedule/editor.js"></script>
|
||||
<script src="/js/plugins/autocomplete.js"></script>
|
||||
<script>
|
||||
$(function () {
|
||||
console.log('Document READY loading schedule editor');
|
||||
loadEventType('{{$date}}');
|
||||
})
|
||||
</script>
|
||||
@endsection
|
||||
@@ -1,68 +1,62 @@
|
||||
<div class="col-md-12 mt-4 text-center">
|
||||
<h4>Information Générale</h4>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div id="accordion" class="col-12" role="tablist">
|
||||
<div class="card card-collapse">
|
||||
<div class="card-header" role="tab" id="headingOne">
|
||||
<h5 class="mb-0">
|
||||
<a data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||||
<b>Information générale</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div id="collapseOne" class="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="name">Nom de l'événement</label>
|
||||
<input type="text" name="name" id="name" class="form-control" placeholder="" aria-describedby="nameHelp" value="{{$activity->name}}" required>
|
||||
<small id="nameHelp" class="text-muted">Veuillez entrer le nom de l'événement</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
<div class="form-group">
|
||||
<label class="label-control">Date et Heure de début</label>
|
||||
<input name="begin" type="text" id="datetimepickerbegin" class="form-control datetimepicker" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4">
|
||||
<div class="form-group">
|
||||
<label class="label-control">Date et Heure de fin</label>
|
||||
<input name="end" type="text" id="datetimepickerend" class="form-control datetimepicker" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-md-4">
|
||||
</div>
|
||||
<div class="col-lg-6 col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="name">Lieux</label>
|
||||
<input type="text" name="location" id="location" class="form-control" placeholder="" aria-describedby="nameHelp" value="{{$activity->location}}" required>
|
||||
<small id="nameHelp" class="text-muted">Veuillez entrer le lieu de l'événement</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 my-auto text-center">
|
||||
<div class="form-group">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" name="is_mandatory" type="checkbox" value="1"
|
||||
@if ($activity->is_mandatory == 1)
|
||||
checked
|
||||
@endif>
|
||||
L'événement est t-il obligatoire pour tous les cadets ?
|
||||
<span class="form-check-sign">
|
||||
<span class="check"></span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 mt-4 text-center">
|
||||
<h4>Options Supplémentaires</h4>
|
||||
</div>
|
||||
<div class="col-md-12 mt-4">
|
||||
<ul class="nav nav-pills mb-3 justify-content-center" id="pills-tab" role="tablist">
|
||||
<li class="nav-item w-25">
|
||||
<a class="nav-link active w-100" id="pills-home-tab" data-toggle="pill" href="#comment" role="tab" aria-controls="pills-home" aria-selected="true">Description</a>
|
||||
</li>
|
||||
<li class="nav-item w-25">
|
||||
<a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#msg" role="tab" aria-controls="pills-profile" aria-selected="false">Message de la semaine</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="pills-tabContent">
|
||||
<div class="tab-pane fade show active" id="comment" role="tabpanel" aria-labelledby="pills-home-tab">
|
||||
<div class="col-md-12 mt-4">
|
||||
<div class="form-group">
|
||||
<label for="desc">Description</label>
|
||||
<textarea class="form-control richeditor" name="desc" id="desc" rows="6" required>{{$activity->admin_desc}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="msg" role="tabpanel" aria-labelledby="pills-profile-tab">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-collapse" id="collmessagedelasemaine">
|
||||
<div class="card-header" role="tab" id="headingTwo">
|
||||
<h5 class="mb-0">
|
||||
<a class="collapsed" data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||
<b>Message de la semaine</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
@@ -79,12 +73,30 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-collapse" id="collschedule">
|
||||
<div class="card-header" role="tab" id="headingThree">
|
||||
<h5 class="mb-0">
|
||||
<a class="collapsed" data-toggle="collapse" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
|
||||
<b>Horaire</b>
|
||||
<i class="material-icons">keyboard_arrow_down</i>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion">
|
||||
<div class="card-body" style="overflow: scroll">
|
||||
<div id="scheduleEditor" class="m-3" style="width: 90vw">
|
||||
@loaderDot
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ($activity->id == 1)
|
||||
@if ($activity->id == 99)
|
||||
<div class="col-md-12 mt-4 text-center">
|
||||
<h4>Horaire d'instruction</h4>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-12">
|
||||
<div id="accordion" role="tablist">
|
||||
@for ($i = 1; $i <= \App\Config::getData('admin_level_in_schedule_nb'); $i++)
|
||||
<div class="card card-collapse">
|
||||
@@ -141,15 +153,14 @@
|
||||
</div>
|
||||
@endfor
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endif
|
||||
<script src="/js/plugins/autocomplete.js"></script>
|
||||
<script>
|
||||
var begin = "<?php echo $begin_time ?>";
|
||||
var end = "<?php echo $end_time ?>";
|
||||
var msg = "<?php echo $msg_time ?>";
|
||||
$('#datetimepickerbegin').datetimepicker({
|
||||
var begin = "<?php echo $begin_time ?>";
|
||||
var end = "<?php echo $end_time ?>";
|
||||
var msg = "<?php echo $msg_time ?>";
|
||||
$('#datetimepickerbegin').datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
@@ -162,8 +173,8 @@ $('#datetimepickerbegin').datetimepicker({
|
||||
close: 'fa fa-remove'
|
||||
},
|
||||
date: new Date(begin)
|
||||
});
|
||||
$('#datetimepickerend').datetimepicker({
|
||||
});
|
||||
$('#datetimepickerend').datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
@@ -176,8 +187,8 @@ $('#datetimepickerend').datetimepicker({
|
||||
close: 'fa fa-remove'
|
||||
},
|
||||
date: new Date(end)
|
||||
});
|
||||
$('#datetimepickermsg').datetimepicker({
|
||||
});
|
||||
$('#datetimepickermsg').datetimepicker({
|
||||
icons: {
|
||||
time: "fa fa-clock-o",
|
||||
date: "fa fa-calendar",
|
||||
@@ -190,9 +201,8 @@ $('#datetimepickermsg').datetimepicker({
|
||||
close: 'fa fa-remove'
|
||||
},
|
||||
date: new Date(msg)
|
||||
});
|
||||
$('.richeditor').trumbowyg({
|
||||
});
|
||||
$('.richeditor').trumbowyg({
|
||||
lang: 'fr'
|
||||
});
|
||||
initAutoComplete("AutoComplete");
|
||||
});
|
||||
</script>
|
||||
@@ -26,7 +26,7 @@
|
||||
<link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/ui/trumbowyg.css">
|
||||
<link rel="stylesheet" href="/assets/jquery-ui-1.12.1/jquery-ui.theme.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/contextLoader.min.css">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link rel="stylesheet" href="/css/custom.css">
|
||||
@@ -1,10 +1,11 @@
|
||||
<script src="/js/core/jquery.min.js"></script>
|
||||
<script src="/js/core/popper.min.js"></script>
|
||||
<script src="/js/core/bootstrap-material-design.min.js"></script>
|
||||
<script src="/js/material-dashboard.js"></script>
|
||||
|
||||
<!-- Plugin for the Perfect Scrollbar -->
|
||||
<script src="/js/plugins/perfect-scrollbar.jquery.min.js"></script>
|
||||
|
||||
<script src="/js/core/bootstrap-material-design.min.js"></script>
|
||||
<script src="/js/material-dashboard.js"></script>
|
||||
<!-- Plugin for the momentJs -->
|
||||
<script src="/js/plugins/moment.min.js"></script>
|
||||
<!-- Plugin for Sweet Alert -->
|
||||
@@ -30,6 +31,7 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/langs/fr.js"></script>
|
||||
<script src="/js/notify.js"></script>
|
||||
|
||||
<script src="/js/plugins/contextLoader.min.js"></script>
|
||||
<script>
|
||||
var api_token = "<?php echo Auth::User()->api_token ?>";
|
||||
$('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar();
|
||||
|
||||
@@ -16,12 +16,15 @@ Route::get('/schedule/events','ScheduleController@apiIndex');
|
||||
Route::get('/schedule/events/modal/{id}/{db_type}','ScheduleController@loadModal');
|
||||
|
||||
Route::middleware('auth:api')->group(function () {
|
||||
Route::get('/user', function (Request $request) {
|
||||
return $request->user();
|
||||
});
|
||||
|
||||
Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see');
|
||||
Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add');
|
||||
Route::get('/schedule/editor/init/{id}','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit');
|
||||
Route::get('/schedule/editor/course/{niveau}/{periode}','ScheduleEditorController@getCourseEmpty')->middleware('perm:schedule_edit');
|
||||
Route::get('/schedule/editor/template/{id}','ScheduleEditorController@getEventTemplate')->middleware('perm:schedule_add');
|
||||
Route::get('/schedule/editor/emptyperiode/{id}','ScheduleEditorController@getEmptyPeriode')->middleware('perm:schedule_add');
|
||||
Route::get('/schedule/editor/emptylevel/{id}','ScheduleEditorController@getEmptyLevel')->middleware('perm:schedule_add');
|
||||
Route::get('/schedule/editor/levelHeader/{id}','ScheduleEditorController@getLevelHeader')->middleware('perm:schedule_add');
|
||||
Route::post('/schedule/event/delete/{id}','ScheduleController@delete')->middleware('perm:schedule_delete');
|
||||
|
||||
/** Booking */
|
||||
@@ -41,6 +44,10 @@ Route::middleware('auth:api')->group(function () {
|
||||
Route::post('/user/delete', 'UserController@destroy')->middleware('perm:user_delete');
|
||||
Route::get('/user/list', 'UserController@apiList')->middleware('perm:user_see');
|
||||
|
||||
/** OCOM Route */
|
||||
Route::get('/ocom/list', 'OCOMController@jsonList')->middleware('perm:schedule_see');
|
||||
Route::get('/ocom/{id}/name','OCOMController@getName')->middleware('perm:schedule_see');
|
||||
|
||||
/** Inventory Route */
|
||||
Route::post('/item/delete', 'ItemController@destroy')->middleware('perm:inventory_delete');
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@ use Illuminate\Support\Facades\Storage;
|
||||
/* Basic Auth Route */
|
||||
Auth::routes();
|
||||
Route::get('logout', 'Auth\LoginController@logout')->name('logout');
|
||||
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate');
|
||||
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate');
|
||||
Route::get('/ocom/create','OCOMController@create');
|
||||
|
||||
|
||||
|
||||
@@ -27,10 +30,6 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show');
|
||||
Route::get('/picture/{id}', 'PictureController@show');
|
||||
Route::get('/pictures', 'PictureController@index');
|
||||
|
||||
Route::get('/test',function(){
|
||||
clog('add','success','Test');
|
||||
});
|
||||
|
||||
Route::middleware(['auth'])->group(function () {
|
||||
|
||||
/* Espace Administration Route */
|
||||
|
||||
Reference in New Issue
Block a user