mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-06-15 13:32:43 +01:00
Deactivate auditing for import and increase max_execution_time
This commit is contained in:
committed by
Constantin Graf
parent
cc10af0b97
commit
0a0b7a03b4
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\ClientFactory;
|
use Database\Factories\ClientFactory;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
@@ -12,7 +13,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +29,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Client extends Model implements AuditableContract
|
class Client extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<ClientFactory> */
|
/** @use HasFactory<ClientFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
22
app/Models/Concerns/CustomAuditable.php
Normal file
22
app/Models/Concerns/CustomAuditable.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Models\Concerns;
|
||||||
|
|
||||||
|
use OwenIt\Auditing\Auditable;
|
||||||
|
|
||||||
|
trait CustomAuditable
|
||||||
|
{
|
||||||
|
use Auditable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string>|null
|
||||||
|
*/
|
||||||
|
protected ?array $auditEvents = null;
|
||||||
|
|
||||||
|
public function disableAuditing(): void
|
||||||
|
{
|
||||||
|
$this->auditEvents = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\MemberFactory;
|
use Database\Factories\MemberFactory;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
@@ -11,7 +12,6 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Laravel\Jetstream\Membership as JetstreamMembership;
|
use Laravel\Jetstream\Membership as JetstreamMembership;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +29,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Member extends JetstreamMembership implements AuditableContract
|
class Member extends JetstreamMembership implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<MemberFactory> */
|
/** @use HasFactory<MemberFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\OrganizationFactory;
|
use Database\Factories\OrganizationFactory;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
@@ -19,7 +20,6 @@ use Laravel\Jetstream\Events\TeamDeleted;
|
|||||||
use Laravel\Jetstream\Events\TeamUpdated;
|
use Laravel\Jetstream\Events\TeamUpdated;
|
||||||
use Laravel\Jetstream\Jetstream;
|
use Laravel\Jetstream\Jetstream;
|
||||||
use Laravel\Jetstream\Team as JetstreamTeam;
|
use Laravel\Jetstream\Team as JetstreamTeam;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -42,7 +42,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Organization extends JetstreamTeam implements AuditableContract
|
class Organization extends JetstreamTeam implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<OrganizationFactory> */
|
/** @use HasFactory<OrganizationFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\OrganizationInvitationFactory;
|
use Database\Factories\OrganizationInvitationFactory;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Laravel\Jetstream\TeamInvitation as JetstreamTeamInvitation;
|
use Laravel\Jetstream\TeamInvitation as JetstreamTeamInvitation;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +26,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class OrganizationInvitation extends JetstreamTeamInvitation implements AuditableContract
|
class OrganizationInvitation extends JetstreamTeamInvitation implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<OrganizationInvitationFactory> */
|
/** @use HasFactory<OrganizationInvitationFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\ProjectFactory;
|
use Database\Factories\ProjectFactory;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,7 +40,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Project extends Model implements AuditableContract
|
class Project extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<ProjectFactory> */
|
/** @use HasFactory<ProjectFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
@@ -55,6 +55,7 @@ class Project extends Model implements AuditableContract
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'name' => 'string',
|
'name' => 'string',
|
||||||
'color' => 'string',
|
'color' => 'string',
|
||||||
|
'archived_at' => 'datetime',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\ProjectMemberFactory;
|
use Database\Factories\ProjectMemberFactory;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
@@ -11,7 +12,6 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,7 +31,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class ProjectMember extends Model implements AuditableContract
|
class ProjectMember extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<ProjectMemberFactory> */
|
/** @use HasFactory<ProjectMemberFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\TagFactory;
|
use Database\Factories\TagFactory;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,7 +25,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Tag extends Model implements AuditableContract
|
class Tag extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<TagFactory> */
|
/** @use HasFactory<TagFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\TaskFactory;
|
use Database\Factories\TaskFactory;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,7 +34,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class Task extends Model implements AuditableContract
|
class Task extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<TaskFactory> */
|
/** @use HasFactory<TaskFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use App\Service\BillableRateService;
|
use App\Service\BillableRateService;
|
||||||
use Carbon\CarbonInterval;
|
use Carbon\CarbonInterval;
|
||||||
@@ -14,7 +15,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Korridor\LaravelComputedAttributes\ComputedAttributes;
|
use Korridor\LaravelComputedAttributes\ComputedAttributes;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,8 +47,8 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class TimeEntry extends Model implements AuditableContract
|
class TimeEntry extends Model implements AuditableContract
|
||||||
{
|
{
|
||||||
use Auditable;
|
|
||||||
use ComputedAttributes;
|
use ComputedAttributes;
|
||||||
|
use CustomAuditable;
|
||||||
|
|
||||||
/** @use HasFactory<TimeEntryFactory> */
|
/** @use HasFactory<TimeEntryFactory> */
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Enums\Weekday;
|
use App\Enums\Weekday;
|
||||||
|
use App\Models\Concerns\CustomAuditable;
|
||||||
use App\Models\Concerns\HasUuids;
|
use App\Models\Concerns\HasUuids;
|
||||||
use Database\Factories\UserFactory;
|
use Database\Factories\UserFactory;
|
||||||
use Filament\Models\Contracts\FilamentUser;
|
use Filament\Models\Contracts\FilamentUser;
|
||||||
@@ -25,7 +26,6 @@ use Laravel\Fortify\TwoFactorAuthenticatable;
|
|||||||
use Laravel\Jetstream\HasProfilePhoto;
|
use Laravel\Jetstream\HasProfilePhoto;
|
||||||
use Laravel\Jetstream\HasTeams;
|
use Laravel\Jetstream\HasTeams;
|
||||||
use Laravel\Passport\HasApiTokens;
|
use Laravel\Passport\HasApiTokens;
|
||||||
use OwenIt\Auditing\Auditable;
|
|
||||||
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,7 +57,7 @@ use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
|
|||||||
*/
|
*/
|
||||||
class User extends Authenticatable implements AuditableContract, FilamentUser, MustVerifyEmail
|
class User extends Authenticatable implements AuditableContract, FilamentUser, MustVerifyEmail
|
||||||
{
|
{
|
||||||
use Auditable;
|
use CustomAuditable;
|
||||||
use HasApiTokens;
|
use HasApiTokens;
|
||||||
|
|
||||||
/** @use HasFactory<UserFactory> */
|
/** @use HasFactory<UserFactory> */
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ class ImportDatabaseHelper
|
|||||||
throw new ImportException('Invalid data: '.implode(', ', $validator->errors()->all()));
|
throw new ImportException('Invalid data: '.implode(', ', $validator->errors()->all()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var TModel $model */
|
||||||
$model = new $this->model;
|
$model = new $this->model;
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$model->{$key} = $value;
|
$model->{$key} = $value;
|
||||||
@@ -105,6 +106,9 @@ class ImportDatabaseHelper
|
|||||||
if ($this->beforeSave !== null) {
|
if ($this->beforeSave !== null) {
|
||||||
($this->beforeSave)($model);
|
($this->beforeSave)($model);
|
||||||
}
|
}
|
||||||
|
if (method_exists($model, 'disableAuditing')) {
|
||||||
|
$model->disableAuditing();
|
||||||
|
}
|
||||||
$model->save();
|
$model->save();
|
||||||
|
|
||||||
if ($this->afterCreate !== null) {
|
if ($this->afterCreate !== null) {
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'max_execution_time' => 30,
|
'max_execution_time' => 45,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom swoole config
|
* Custom swoole config
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class TogglTimeEntriesImporterTest extends ImporterTestAbstract
|
|||||||
$queryLog = DB::getQueryLog();
|
$queryLog = DB::getQueryLog();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
$this->assertCount(31, $queryLog);
|
$this->assertCount(23, $queryLog);
|
||||||
$testScenario = $this->checkTestScenarioAfterImportExcludingTimeEntries();
|
$testScenario = $this->checkTestScenarioAfterImportExcludingTimeEntries();
|
||||||
$this->checkTimeEntries($testScenario);
|
$this->checkTimeEntries($testScenario);
|
||||||
$this->assertSame(2, $report->timeEntriesCreated);
|
$this->assertSame(2, $report->timeEntriesCreated);
|
||||||
|
|||||||
Reference in New Issue
Block a user