This commit is contained in:
Mathieu Lagace
2019-09-30 17:06:31 -04:00
parent d1ce6ba6da
commit 0166c48daa
38 changed files with 618 additions and 201 deletions

View File

@@ -13,7 +13,7 @@ class Course extends Model
public function user()
{
return $this->belongsTo('App\User');
return $this->belongsTo('App\User');
}
public function event()

View File

@@ -18,7 +18,7 @@ class Event extends Model
public function user()
{
return $this->belongsTo('App\User');
return $this->belongsTo('App\User');
}
public function course($p,$l)
@@ -40,4 +40,18 @@ class Event extends Model
{
return $this->morphMany('App\Log', 'logable');
}
public static function future()
{
$events = collect();
foreach (Event::all() as $event)
{
if (date('U',strtotime($event->date_begin)) >= time())
{
$events->push($event);
}
}
return $events;
}
}

View File

@@ -50,7 +50,8 @@ class EventController extends Controller
$event->is_mandatory = 0;
}
$event->desc = request('desc');
$event->msg = request('msg');
$event->date_msg = request('date_msg');
$event->save();
if ($event->type == 1) {
@@ -60,7 +61,7 @@ class EventController extends Controller
$course = new \App\Course();
$users = \App\User::all();
$instructor = 1;
$instructor = request('instruc_n'.$l.'_p'.$p);
foreach ($users as $user) {
if($user->fullname() == request('instruc_n'.$l.'_p'.$p))
@@ -130,6 +131,7 @@ class EventController extends Controller
$event->is_mandatory = 0;
}
$event->desc = request('desc');
$event->msg = \request('msg');
$event->save();
@@ -151,7 +153,7 @@ class EventController extends Controller
}
$users = \App\User::all();
$instructor = 1;
$instructor = request('instruc_n'.$l.'_p'.$p);
foreach ($users as $user) {
if($user->fullname() == request('instruc_n'.$l.'_p'.$p))

View File

@@ -20,7 +20,7 @@ class JobController extends Controller
$jobs = $jobs_sorted->values();
return view('admin.job.index', ['jobs' => $jobs]);
return view('admin.configs.jobs.index', ['jobs' => $jobs]);
}
/**

View File

@@ -14,13 +14,13 @@ class NewsController extends Controller
*/
public function index()
{
return view('public.allnews',['news' => News::where('publish','=','1')->paginate(9)]);
return view('public.allnews',['news' => News::allWithWeeklyMsg()->where('publish','=','1')->sortByDesc('updated_at')->paginate(9)]);
}
public function indexAdmin()
{
clogNav('a consulté les nouvelles');
return view('admin.news.index',['news' => \App\News::paginate(9)]);
return view('admin.news.index',['news' => News::allWithWeeklyMsg()->sortByDesc('updated_at')->paginate(9)]);
}
/**
@@ -69,8 +69,14 @@ class NewsController extends Controller
*/
public function show($id)
{
clog('see','success','a consulté une nouvelle',null,'App\News',$id);
return view('public.news', ['new' => \App\News::find($id)]);
if (\request('type') == 'msg')
{
return view('public.news', ['new' => \App\News::getWeeklyMsg(\App\Event::find($id))]);
}
else
{
return view('public.news', ['new' => \App\News::find($id)]);
}
}
/**

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\News;
use Illuminate\Http\Request;
class PublicController extends Controller
@@ -14,7 +15,7 @@ class PublicController extends Controller
public function index()
{
return view('public.index',[
'news' => \App\News::all()->where('publish','1')->sortByDesc('created_at')->take(3),
'news' => \App\News::allWithWeeklyMsg()->where('publish','=','1')->sortByDesc('created_at')->take(3),
'activities' => \App\ComplementaryActivity::all()->where('is_promoted','1'),
'pictures' => \App\Picture::all()->sortByDesc('created_at')->take(\App\Config::getData('nb_activity_public'))
]);

View File

@@ -213,10 +213,14 @@ class ScheduleController extends Controller
$activity = \App\ComplementaryActivity::find($type);
$begin_time = $date." ".$activity->begin_time;
$end_time = $date." ".$activity->end_time;
$msg_time = Date('c',strtotime($begin_time.'-4day'));
return view('admin.schedule.modal.add',[
'activity' => \App\ComplementaryActivity::find($type),
'begin_time' => $begin_time,
'end_time' => $end_time
'end_time' => $end_time,
'msg_time' => $msg_time
]);
}

View File

@@ -6,7 +6,26 @@ use Illuminate\Database\Eloquent\Model;
class Job extends Model
{
protected $casts = [
'perm' => 'array',
];
public function permissions()
{
return collect(json_decode($this->permissions,true));
}
public function permission($permission)
{
foreach ($this->permissions() as $perm => $value)
{
if ($permission == $perm)
{
return $value;
}
}
return 0;
}
public function p($perm)
{
return $this->permission($perm);
}
}

View File

@@ -6,6 +6,10 @@ use Illuminate\Database\Eloquent\Model;
class News extends Model
{
protected $casts = [
'tags' => 'array',
];
public function user()
{
return $this->belongsTo('App\User');
@@ -20,4 +24,39 @@ class News extends Model
{
return $this->morphMany('App\Log', 'logable');
}
public static function allWithWeeklyMsg()
{
$news = \App\News::all();
foreach (\App\Event::future() as $event)
{
if($event->type = 1)
{
if (date('U',strtotime($event->date_msg)) <= time())
{
$news->push(self::getWeeklyMsg($event));
}
}
}
return $news;
}
public static function getWeeklyMsg(\App\Event $event)
{
$n = new News();
$n->event_id = $event->id;
$n->title = 'Message de la semaine du '.date('Y-m-d',strtotime($event->date_begin));
$n->body = $event->msg;
$n->user_id = $event->user_id;
$n->publish = 1;
$n->created_at = $event->created_at;
$n->updated_at = $event->updated_at;
$n->tags = ['message de la semaine','Important'];
return $n;
}
}

View File

@@ -3,7 +3,9 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class AppServiceProvider extends ServiceProvider
{
@@ -15,6 +17,29 @@ class AppServiceProvider extends ServiceProvider
public function boot()
{
Schema::defaultStringLength(191);
/**
* Paginate a standard Laravel Collection.
*
* @param int $perPage
* @param int $total
* @param int $page
* @param string $pageName
* @return array
*/
Collection::macro('paginate', function($perPage, $total = null, $page = null, $pageName = 'page') {
$page = $page ?: LengthAwarePaginator::resolveCurrentPage($pageName);
return new LengthAwarePaginator(
$this->forPage($page, $perPage),
$total ?: $this->count(),
$perPage,
$page,
[
'path' => LengthAwarePaginator::resolveCurrentPath(),
'pageName' => $pageName,
]
);
});
}
/**

View File

@@ -32,6 +32,11 @@ class User extends Authenticatable
return $this->belongsTo('App\Rank');
}
public function job()
{
return $this->belongsTo('App\Job');
}
public function logs()
{
return $this->hasMany(Log::class);
@@ -287,7 +292,14 @@ class User extends Authenticatable
public function permission($perm)
{
return $this->rank->permission($perm);
if ($this->job->permission($perm) == 0)
{
return $this->rank->permission($perm);
}
else
{
return $this->job->permission($perm);
}
}
public function p($perm)