bug fixes and new functionality

This commit is contained in:
NW 2025-01-31 11:07:31 +00:00
parent 4cf46bd449
commit f985bfedd3
3 changed files with 43 additions and 33 deletions

View File

@ -14,7 +14,8 @@ class Form extends Model
* @var array * @var array
*/ */
protected $guarded = []; protected $guarded = [];
public $incrementing = false;
protected $keyType = 'string';
protected $appends = ['media_url']; protected $appends = ['media_url'];
/** /**

View File

@ -477,21 +477,28 @@ class FormDataController extends Controller
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->get() ->get()
->filter(function (FormData $formData) use ($request) { ->filter(function (FormData $formData) use ($request) {
$date = null;
if (is_array($formData->data)) { if (is_array($formData->data)) {
$date = strtotime( $dates = array_filter($formData->data, function ($item) {
array_values( return is_string($item) && strtotime($item);
array_filter($formData->data, fn($item) => is_string($item) && strtotime($item)) });
)[0] if (!empty($dates)) {
); $firstDate = reset($dates);
$date = strtotime($firstDate);
}
} }
$date = Carbon::createFromTimestamp($date)->toDateString(); if (!$date) {
$isValidStartDate = $request->filled('start_date') ? return false; // Skip entries without valid dates
$request->get('start_date') <= $date : }
Carbon::now()->subDays(7)->toDateString() <= $date;
$isValidEndDate = $request->filled('end_date') ? $dateStr = Carbon::createFromTimestamp($date)->toDateString();
$request->get('end_date') >= $date : $isValidStartDate = $request->filled('start_date')
Carbon::now()->toDateString() >= $date; ? $request->get('start_date') <= $dateStr
: Carbon::now()->subDays(7)->toDateString() <= $dateStr;
$isValidEndDate = $request->filled('end_date')
? $request->get('end_date') >= $dateStr
: Carbon::now()->toDateString() >= $dateStr;
return $isValidStartDate && $isValidEndDate; return $isValidStartDate && $isValidEndDate;
}); });
@ -532,7 +539,7 @@ class FormDataController extends Controller
} }
return view('form_data.show') return view('form_data.show')
->with(compact('form', 'data')); ->with(compact('form', 'data', 'has_permission')); // Добавьте has_permission
} }
public function viewData($id) public function viewData($id)

View File

@ -82,9 +82,7 @@
<table class="table" id="submitted_data_table" style="width: 100%;"> <table class="table" id="submitted_data_table" style="width: 100%;">
<thead> <thead>
<tr> <tr>
@if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web'))
<th>@lang('messages.action')</th> <th>@lang('messages.action')</th>
@endif
@if($is_enabled_sub_ref_no) @if($is_enabled_sub_ref_no)
<th>@lang('messages.submission_numbering')</th> <th>@lang('messages.submission_numbering')</th>
@ -104,9 +102,9 @@
<tbody> <tbody>
@foreach($data as $k => $row) @foreach($data as $k => $row)
<tr> <tr>
@if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web'))
<td> <td>
@if(in_array('view', $btn_enabled)) {{-- Кнопка просмотра для всех, у кого есть права --}}
@if(in_array('view', $btn_enabled) && $has_permission)
<button type="button" class="btn btn-info btn-sm view_form_data m-1" <button type="button" class="btn btn-info btn-sm view_form_data m-1"
data-href="{{action([\App\Http\Controllers\FormDataController::class, 'viewData'], [$row->id])}}" data-href="{{action([\App\Http\Controllers\FormDataController::class, 'viewData'], [$row->id])}}"
data-toggle="modal"> data-toggle="modal">
@ -114,6 +112,9 @@
@lang('messages.view') @lang('messages.view')
</button> </button>
@endif @endif
{{-- Кнопки только для админов/супервайзеров --}}
@if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web'))
@if(in_array('delete', $btn_enabled)) @if(in_array('delete', $btn_enabled))
<button type="button" <button type="button"
class="btn btn-danger btn-sm delete_form_data m-1" class="btn btn-danger btn-sm delete_form_data m-1"
@ -122,6 +123,7 @@
@lang('messages.delete') @lang('messages.delete')
</button> </button>
@endif @endif
@php @php
$form_id = !empty($form->slug) ? $form->slug : $form->id; $form_id = !empty($form->slug) ? $form->slug : $form->id;
@endphp @endphp
@ -130,8 +132,8 @@
<i class="far fa-edit" aria-hidden="true"></i> <i class="far fa-edit" aria-hidden="true"></i>
@lang('messages.edit') @lang('messages.edit')
</a> </a>
</td>
@endif @endif
</td>
@if($is_enabled_sub_ref_no) @if($is_enabled_sub_ref_no)
<td> <td>