ALPHA 3.0.4

This commit is contained in:
TheGamecraft
2018-09-14 17:25:50 -04:00
parent d1c3d60791
commit 99ae047998
173 changed files with 26543 additions and 12060 deletions

View File

@@ -20,12 +20,21 @@ class LoginController extends Controller
use AuthenticatesUsers;
protected function redirectTo()
{
if(\Auth::User()->getAcces(2))
{
return '/admin';
} else if(\Auth::User()->getAcces(1)){
return '/ecc';
}
}
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/admin';
/**protected $redirectTo = '/admin';*/
/**
* Create a new controller instance.

View File

@@ -445,14 +445,14 @@ class CalendarController extends Controller
$schedule->save();
/** Logs and Notification */
Log::saveLog("Ajout de l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date);
Log::saveLog("Ajout de l'activité, ".$schedule->name." à l'horaire le ".$schedule->date);
$userToNotify = $schedule->getUserToNotify();
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Ajout de l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date,"/admin/calendar"));
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Ajout de l'activité, ".$schedule->name." à l'horaire le ".$schedule->date,"/admin/calendar"));
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
{
\Notification::send($userToNotify, new mail(\Auth::User(),"Ajout d'une activité a l'horaire",\Auth::User()->fullname()." à ajouté l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date));
\Notification::send($userToNotify, new mail(\Auth::User(),"Ajout d'une activité a l'horaire",\Auth::User()->fullname()." à ajouté l'activité, ".$schedule->name." à l'horaire le ".$schedule->date));
}
return redirect('/admin/calendar');

View File

@@ -0,0 +1,300 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use \App\Schedule;
class ECCController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$messages = \App\Message::all()->forPage(1,4);
return view('ecc.dashboard',['userClasse' => \Auth::User()->getClasse()->forPage(1,8), 'messages' => $messages,'AlluserClasse' => \Auth::User()->getClasse()]);
}
/**
* 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 int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update()
{
return view('ecc.update');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
public function messages($page = 1)
{
if ($page < 1) {
$page = 1;
}
$messages = \App\Message::all()->forPage($page,6);
return view('ecc.messages',['messages' => $messages,'page'=>$page]);
}
public function message($id)
{
$messages = \App\Message::find($id);
return view('ecc.message',['message' => $messages]);
}
public function guide()
{
return view('ecc.guide');
}
public function calendar()
{
return view('ecc.calendar');
}
public function generateCalendar()
{
$lang = str_replace('_', '-', app()->getLocale());
setlocale(LC_ALL, $lang.'_'.strtoupper($lang).'.utf8','fra');
$month = request('month');
$year = request('year');
$nextMonth = $month + 1;
$nextYear = $year;
if ($nextMonth > 12) {
$nextMonth = 1;
$nextYear = $nextYear + 1;
}
$prevMonth = $month - 1;
$prevYear = $year;
if ($prevMonth < 1) {
$prevMonth = 12;
$prevYear = $prevYear - 1;
}
$calendar = array();
$dayinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$firstdaymonth = date("w", strtotime("01-".$month."-".$year));
$addingday = 0;
for ($i=$firstdaymonth ; $addingday < $dayinmonth ; $i++) {
$addingday = $addingday + 1;
$calendar[$i] = $addingday;
}
echo '<div class="table calendar">';
echo '<div class="thead-dark">';
echo '<div class="row calendar-head"><div class="col-sm-2"><a class="btn" onclick="generate('.$prevMonth.','.$prevYear.')"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></div><div class="col-sm-8">'.ucfirst(strftime("%B %Y", strtotime("01-".$month."-".$year))).'</div><div class="col-sm-2"><a class="btn" onclick="generate('.$nextMonth.','.$nextYear.')"><i class="fa fa-chevron-right" aria-hidden="true"></i></a></div></div>';
echo '<div class="row calendar-head"><div style="width:14%;">Dimanche</div><div style="width:14%;">Lundi</div><div style="width:14%;">Mardi</div><div style="width:14%;">Mercredi</div><div style="width:14%;">Jeudi</div><div style="width:14%;">Vendredi</div><div style="width:14%;">Samedi</div></div>';
echo '</div>';
echo '<div class="calendar-body">';
for ($i=0; $i < 6 ; $i++)
{
echo '<div class="calendar-row">';
for ($a=0; $a < 7 ; $a++)
{
if (isset($calendar[(($i*7) + $a)]))
{
/** Date info */
$today = date("Y-m-d", strtotime($year."-".$month."-".$calendar[(($i*7) + $a)]));
$activityToday = Schedule::where('date','=',$today)->get();
/** If nothing today */
if ($activityToday->isEmpty()) {
echo '<a href="/ecc/calendar/'.$today.'" class="calendar-container calendar-empty" name="'.$today.'" id="calendar_'.$calendar[(($i*7) + $a)].'"><div class="calendar-date">'.date("j", strtotime($today)).'</div></a>';
} else {
echo '<a href="/ecc/calendar/'.$today.'" class="calendar-container" name="'.$today.'" id="calendar_'.$calendar[(($i*7) + $a)].'">';
$text = "";
echo '<div class="calendar-date">'.date("j", strtotime($today)).'</div>';
foreach ($activityToday as $activity) {
echo '<div class="calendar-text" style="width:90%;">';
switch ($activity->type) {
case 'regular':
echo '<div class="row" style="color:orange;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-book fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'pilotage':
echo '<div class="row" style="color:#58D3F7;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-plane fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'drill':
echo '<div class="row" style="color:blue;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-trophy fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'music':
echo '<div class="row" style="color:green;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-music fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'biathlon':
echo '<div class="row" style="color:red;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-snowflake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'marksmanship':
echo '<div class="row" style="color:grey;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-star fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'founding':
echo '<div class="row" style="color:#00FF40;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-usd fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
case 'volunteer':
echo '<div class="row" style="color:#DF0174;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-handshake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
default:
echo '<div class="row" style="color:#0B615E;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
break;
}
echo '</div>';
}
echo '</a>';
}
} else {
echo '<div class="calendar-container¸calendar-empty" style="border:none !important; width:14%;"></div>';
}
}
echo '</div>';
}
}
public function calendar_date($date)
{
$schedules = \App\Schedule::all()->where('date',$date);
return view('ecc.calendar_date',['schedules' => $schedules]);
}
public function booking($id,$niveau,$periode)
{
$schedule = Schedule::find($id);
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
$periode_instr = 'n'.$niveau.'_p'.$periode.'_instructor';
if(\Auth::User()->id != $schedule->data[$periode_instr])
{
abort(401);
}
$items = collect();
if (isset($schedule->$periode_item)) {
$items_array = explode("-",$schedule->$periode_item);
foreach ($items_array as $item_array) {
if ($item_array != "") {
$items->push(\App\Item::find($item_array));
}
}
}
return view('ecc.booking',['schedule' => $schedule, 'periode' => $periode, 'niveau' => $niveau, 'items' => $items, 'dispo_item' => $schedule->getInventory($periode)]);
}
public function booking_add($id,$periode,$niveau)
{
$schedule = Schedule::find($id);
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
if (isset($schedule->$periode_item)) {
$array_items = explode("-",$schedule->$periode_item);
array_push($array_items,request('add'));
} else {
$array_items = [];
array_push($array_items,request('add'));
}
$final_items = implode("-",$array_items);
$schedule->$periode_item = $final_items;
$schedule->save();
return redirect('/ecc/inventory/'.$id.'/'.$niveau.'/'.$periode);
}
public function booking_remove($id,$periode,$niveau)
{
$schedule = Schedule::find($id);
$remove = [request('remove')];
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
if (isset($schedule->$periode_item)) {
$array_items = explode("-",$schedule->$periode_item);
$array_items = array_diff($array_items,$remove);
} else {
$array_items = [];
$array_items = array_diff($array_items,$remove);
}
$final_items = implode("-",$array_items);
$schedule->$periode_item = $final_items;
$schedule->save();
return redirect('/ecc/inventory/'.$id.'/'.$niveau.'/'.$periode);
}
}

View File

@@ -6,5 +6,15 @@ use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
//
public static function explodeItems($items)
{
$array_items = explode("-",$items);
$col_items = collect();
foreach ($array_items as $item) {
$col_items->push(Item::find($item));
}
$col_items->forget(0);
return $col_items;
}
}

View File

@@ -97,4 +97,143 @@ class User extends Authenticatable
}
return $perm_value;
}
public function getClasse()
{
$schedules = Schedule::all()->where('type','regular')->sortBy('date');
$currentUser = \Auth::User();
$filtered_schedule = collect();
$user_classes = collect();
foreach ($schedules as $day) {
if ($day->date >= date('Y-m-d')) {
$filtered_schedule->push($day);
}
}
foreach ($filtered_schedule as $schedule) {
if ($schedule->data['n1_p1_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '1',
'niveau' => '1',
'name' => $schedule->data['n1_p1_name'],
'ocom' => $schedule->data['n1_p1_ocom'],
'local' => $schedule->data['n1_p1_local'],
'plan_done' => $schedule->data['n1_p1_plandone'],
'material' => $schedule->n1_p1_item,
]));
}
if ($schedule->data['n1_p2_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '2',
'niveau' => '1',
'name' => $schedule->data['n1_p2_name'],
'ocom' => $schedule->data['n1_p2_ocom'],
'local' => $schedule->data['n1_p2_local'],
'plan_done' => $schedule->data['n1_p2_plandone'],
'material' => $schedule->n1_p2_item,
]));
}
if ($schedule->data['n2_p1_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '1',
'niveau' => '2',
'name' => $schedule->data['n2_p1_name'],
'ocom' => $schedule->data['n2_p1_ocom'],
'local' => $schedule->data['n2_p1_local'],
'plan_done' => $schedule->data['n2_p1_plandone'],
'material' => $schedule->n2_p1_item,
]));
}
if ($schedule->data['n2_p2_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '2',
'niveau' => '2',
'name' => $schedule->data['n2_p2_name'],
'ocom' => $schedule->data['n2_p2_ocom'],
'local' => $schedule->data['n2_p2_local'],
'plan_done' => $schedule->data['n2_p2_plandone'],
'material' => $schedule->n2_p2_item,
]));
}
if ($schedule->data['n3_p1_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '1',
'niveau' => '3',
'name' => $schedule->data['n3_p1_name'],
'ocom' => $schedule->data['n3_p1_ocom'],
'local' => $schedule->data['n3_p1_local'],
'plan_done' => $schedule->data['n3_p1_plandone'],
'material' => $schedule->n3_p1_item,
]));
}
if ($schedule->data['n3_p2_instructor'] == $currentUser->id) {
$user_classes->push(collect([
'date' => $schedule->date,
'periode' => '2',
'niveau' => '3',
'name' => $schedule->data['n3_p2_name'],
'ocom' => $schedule->data['n3_p2_ocom'],
'local' => $schedule->data['n3_p2_local'],
'plan_done' => $schedule->data['n3_p2_plandone'],
'material' => $schedule->n3_p2_item,
]));
}
}
return $user_classes;
}
public function countActivity()
{
return count(\App\Log::all()->where('user_id',$this->id));
}
public function countClasse()
{
$nbClasse = 0;
$schedules = Schedule::all()->where('type','regular')->sortBy('date');
$filtered_schedule = collect();
foreach (\App\Schedule::all() as $day) {
if ($day->date >= date('Y-m-d')) {
$filtered_schedule->push($day);
}
}
foreach ($filtered_schedule as $schedule) {
if ($schedule->data['n1_p1_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
if ($schedule->data['n1_p2_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
if ($schedule->data['n2_p1_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
if ($schedule->data['n2_p2_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
if ($schedule->data['n3_p1_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
if ($schedule->data['n3_p2_instructor'] == $this->id) {
$nbClasse = ++$nbClasse;
}
}
return $nbClasse;
}
}