Merge branch '8slotsperday' into develop
This commit is contained in:
commit
cf57486a83
6 changed files with 74 additions and 15 deletions
|
|
@ -2,13 +2,10 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Enums\Planning\ActivityType;
|
||||
use App\Enums\Role;
|
||||
use App\Http\Requests\StoreScheduleRequest;
|
||||
use App\Models\Schedule;
|
||||
use App\Models\User;
|
||||
use App\Models\WeekPlanning;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Carbon\CarbonImmutable;
|
||||
|
||||
|
|
@ -23,7 +20,7 @@ class ScheduleController extends Controller
|
|||
public function index(Request $request)
|
||||
{
|
||||
$date = CarbonImmutable::now()->startOfWeek();
|
||||
$nbweeks = 2;
|
||||
$nbweeks = config('schedules.shownWeeks');
|
||||
if ($request->p) {
|
||||
$date = CarbonImmutable::createFromFormat('d/m/Y', $request->p)->startOfWeek();
|
||||
}
|
||||
|
|
|
|||
6
config/schedules.php
Normal file
6
config/schedules.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'shownWeeks' => 2,
|
||||
'daySlots' => 8,
|
||||
];
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Schedule;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class MigrateSchedulesToEightSlotsPerDay extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//migrate data from week plannings
|
||||
for ($i = 4; $i > 0; $i--) {
|
||||
$schedules = Schedule::where('slot', $i)->get();
|
||||
|
||||
foreach ($schedules as $oneschedule) {
|
||||
$newschedule = $oneschedule->replicate();
|
||||
$newschedule->slot = $i * 2;
|
||||
$newschedule->save();
|
||||
$oneschedule->slot = ($i * 2) - 1;
|
||||
$oneschedule->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//not reversible
|
||||
}
|
||||
}
|
||||
|
|
@ -25,11 +25,11 @@
|
|||
<tbody>
|
||||
<template v-for="(user,index) in schedules">
|
||||
<tr v-for="(slot,key) in user" :key="index + '' + key">
|
||||
<td rowspan="4" class="resource_ident" v-if="key == 1">
|
||||
<td :rowspan="daySlots" class="resource_ident" v-if="key == 1">
|
||||
{{users[index].name}}
|
||||
</td>
|
||||
<td v-for="day in days" :class="'dynCell day '+user[key][day.key].type.value+ ' ' +day.eday" :key="day.key">
|
||||
<div class="cellsizer">
|
||||
<div :class="'cellsizer '+ (user[key][day.key].type.value ? user[key][day.key].type.value : 'empty')">
|
||||
<b v-if="user[key][day.key]['model_lie']['value']">
|
||||
<a target="_blank" class="text-light bg-dark"
|
||||
:href="getCellObjectInfo(user[key][day.key]).url">
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
</a>
|
||||
</b><br/>
|
||||
{{user[key][day.key]['text']}}
|
||||
</div>
|
||||
|
||||
<button class="btn btn-edit" type="button" data-bs-toggle="modal"
|
||||
data-bs-target="#editModal" @click="setModalData(index,key,day.key,user[key][day.key]['id'])">✎</button>
|
||||
<button :class="'btn btn-paste '+(!clipBoard.set ? 'hide' : '') " type="button"
|
||||
|
|
@ -48,6 +48,7 @@
|
|||
📄<span style="position: absolute; top: .25em; left: .25em">📄</span>
|
||||
</span></button>
|
||||
<button :class="'btn btn-clear '+(!user[key][day.key]['id'] ? 'hide' : '')" @click="eraseCell(index,key,day.key,user[key][day.key]['id'])">⌫</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
|
|
@ -162,6 +163,10 @@ export default {
|
|||
weeks: {
|
||||
type: String,
|
||||
},
|
||||
daySlots: {
|
||||
type: Number,
|
||||
default: 4
|
||||
},
|
||||
browseDate: {
|
||||
type: String,
|
||||
default: function() {
|
||||
|
|
@ -682,10 +687,18 @@ table.schedules_table {
|
|||
}
|
||||
|
||||
.cellsizer {
|
||||
height: 150px;
|
||||
height: 50px;
|
||||
&:hover {
|
||||
height: 150px;
|
||||
position: absolute;
|
||||
width: 200%;
|
||||
left: -50%;
|
||||
top: -50%;
|
||||
z-index: 20;
|
||||
border: 1px solid;
|
||||
}
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
||||
b {
|
||||
width: 90%;
|
||||
}
|
||||
|
|
@ -694,7 +707,6 @@ table.schedules_table {
|
|||
|
||||
.dynCell{
|
||||
position: relative;
|
||||
|
||||
&.day {
|
||||
//position: relative;
|
||||
&:hover .btn {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
db-models='@json(CellModel::toArray())'
|
||||
db-users='@json($users)'
|
||||
weeks='@json($weekCells)'
|
||||
v-bind:day-slots='{{ Config::get('schedules.daySlots') }}'
|
||||
v-bind:show-weekends='false'></schedule-component>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -64,5 +65,8 @@
|
|||
.absence, .Sat, .Sun {
|
||||
background-color: {{CellType::absence()->value}} !important;
|
||||
}
|
||||
.empty {
|
||||
background-color: #FFF !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -28,15 +28,15 @@
|
|||
@foreach ($stat as $data)
|
||||
<tr style="background-color: {{ CellType::make($data->activity->value)->value }};">
|
||||
<td><b>{{ $data->activity->label }}</b></td>
|
||||
<td><b>{{ $data->nb * 0.25 }}</b></td>
|
||||
<td>{{ round((($data->nb * 0.25) / $workdays) * 100) }}%</td>
|
||||
<td><b>{{ $data->nb / Config::get('schedules.daySlots') }}</b></td>
|
||||
<td>{{ round((($data->nb / Config::get('schedules.daySlots')) / $workdays) * 100) }}%</td>
|
||||
</tr>
|
||||
@php $sum += $data->nb; @endphp
|
||||
@endforeach
|
||||
<tr>
|
||||
<td><b>{{ __('Total') }}</b></td>
|
||||
<td><b>{{ $sum * 0.25 }} / {{ $workdays }}</b></td>
|
||||
<td><b>{{ round((($sum * 0.25) / $workdays) * 100) }}%</b></td>
|
||||
<td><b>{{ $sum / Config::get('schedules.daySlots') }} / {{ $workdays }}</b></td>
|
||||
<td><b>{{ round((($sum / 8) / $workdays) * 100) }}%</b></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -46,4 +46,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue