From 0af7c15456b03844780e9d0faa27d06f24dc1ab7 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 24 Dec 2017 17:34:17 +0200 Subject: [PATCH] Add projects to the calendar --- app/Jobs/GenerateCalendarEvents.php | 2 ++ app/Models/Project.php | 17 ++++++++++++++- app/Ninja/Presenters/ProjectPresenter.php | 26 +++++++++++++++++++++++ resources/views/calendar.blade.php | 2 +- 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 app/Ninja/Presenters/ProjectPresenter.php diff --git a/app/Jobs/GenerateCalendarEvents.php b/app/Jobs/GenerateCalendarEvents.php index 6d27b6190db7..3c9ccb5f2cb2 100644 --- a/app/Jobs/GenerateCalendarEvents.php +++ b/app/Jobs/GenerateCalendarEvents.php @@ -7,6 +7,7 @@ use App\Models\Invoice; use App\Models\Payment; use App\Models\Expense; use App\Models\Task; +use App\Models\Project; class GenerateCalendarEvents extends Job { @@ -26,6 +27,7 @@ class GenerateCalendarEvents extends Job ENTITY_TASK => Task::scope()->with(['project']), ENTITY_PAYMENT => Payment::scope()->with(['invoice']), ENTITY_EXPENSE => Expense::scope()->with(['expense_category']), + ENTITY_PROJECT => Project::scope(), ]; foreach ($data as $type => $source) { diff --git a/app/Models/Project.php b/app/Models/Project.php index 1c90ebab5d61..38be8e615283 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -33,7 +33,7 @@ class Project extends EntityModel /** * @var string */ - protected $presenter = 'App\Ninja\Presenters\EntityPresenter'; + protected $presenter = 'App\Ninja\Presenters\ProjectPresenter'; /** * @return mixed @@ -51,6 +51,14 @@ class Project extends EntityModel return "/projects/{$this->public_id}/edit"; } + /** + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function account() + { + return $this->belongsTo('App\Models\Account'); + } + /** * @return mixed */ @@ -66,6 +74,13 @@ class Project extends EntityModel { return $this->hasMany('App\Models\Task'); } + + public function scopeDateRange($query, $startDate, $endDate) + { + return $query->where(function ($query) use ($startDate, $endDate) { + $query->whereBetween('due_date', [$startDate, $endDate]); + }); + } } Project::creating(function ($project) { diff --git a/app/Ninja/Presenters/ProjectPresenter.php b/app/Ninja/Presenters/ProjectPresenter.php new file mode 100644 index 000000000000..63b7cf116fca --- /dev/null +++ b/app/Ninja/Presenters/ProjectPresenter.php @@ -0,0 +1,26 @@ +entity; + + $data->title = trans('texts.project') . ': ' . $project->name; + $data->start = $project->due_date; + + if ($subColors) { + $data->borderColor = $data->backgroundColor = Utils::brewerColor($project->public_id); + } else { + $data->borderColor = $data->backgroundColor = '#676767'; + } + + return $data; + } + +} diff --git a/resources/views/calendar.blade.php b/resources/views/calendar.blade.php index 0fdd1d8a37b6..a5e8beb0d490 100644 --- a/resources/views/calendar.blade.php +++ b/resources/views/calendar.blade.php @@ -26,7 +26,7 @@ @section('top-right')