Set default member model as meta

This commit is contained in:
philipp lang 2024-08-28 13:26:30 +02:00
parent 151477dbdd
commit 298140e387
4 changed files with 56 additions and 66 deletions

View File

@ -33,7 +33,6 @@ class MemberController extends Controller
session()->put('title', 'Mitglied erstellen');
return Inertia::render('member/VForm', [
'data' => MemberResource::defaultModel(),
'mode' => 'create',
'meta' => MemberResource::meta(),
]);

View File

@ -162,54 +162,47 @@ class MemberResource extends JsonResource
'activity_ids' => [],
'subactivity_ids' => []
],
];
}
/**
* @return array<string, mixed>
*/
public static function defaultModel(): array
{
return [
'gender_id' => null,
'salutation' => '',
'nationality_id' => null,
'firstname' => '',
'lastname' => '',
'address' => '',
'further_address' => '',
'zip' => '',
'location' => '',
'birthday' => '',
'region_id' => null,
'country_id' => Country::default(),
'other_country' => '',
'main_phone' => '',
'mobile_phone' => '',
'work_phone' => '',
'children_phone' => '',
'email' => '',
'email_parents' => '',
'fax' => '',
'letter_address' => '',
'bill_kind' => null,
'subscription_id' => null,
'has_nami' => false,
'send_newspaper' => false,
'joined_at' => now()->format('Y-m-d'),
'comment' => '',
'first_activity_id' => null,
'first_subactivity_id' => null,
'efz' => null,
'ps_at' => null,
'more_ps_at' => null,
'without_education_at' => null,
'recertified_at' => null,
'without_efz_at' => null,
'has_vk' => false,
'has_svk' => false,
'multiply_pv' => false,
'multiply_more_pv' => false,
'default' => [
'gender_id' => null,
'salutation' => '',
'nationality_id' => null,
'firstname' => '',
'lastname' => '',
'address' => '',
'further_address' => '',
'zip' => '',
'location' => '',
'birthday' => '',
'region_id' => null,
'country_id' => Country::default(),
'other_country' => '',
'main_phone' => '',
'mobile_phone' => '',
'work_phone' => '',
'children_phone' => '',
'email' => '',
'email_parents' => '',
'fax' => '',
'letter_address' => '',
'bill_kind' => null,
'subscription_id' => null,
'has_nami' => false,
'send_newspaper' => false,
'joined_at' => now()->format('Y-m-d'),
'comment' => '',
'first_activity_id' => null,
'first_subactivity_id' => null,
'efz' => null,
'ps_at' => null,
'more_ps_at' => null,
'without_education_at' => null,
'recertified_at' => null,
'without_efz_at' => null,
'has_vk' => false,
'has_svk' => false,
'multiply_pv' => false,
'multiply_more_pv' => false,
]
];
}
}

View File

@ -153,8 +153,8 @@ export default {
},
data: function () {
return {
original: {...this.data},
inner: {...this.data},
original: this.mode === 'create' ? {...this.meta.default} : {...this.data},
inner: this.mode === 'create' ? {...this.meta.default} : {...this.data},
active: 0,
};
},

View File

@ -3,6 +3,7 @@
namespace Tests\EndToEnd;
use App\Activity;
use App\Country;
use App\Group;
use App\Invoice\BillKind;
use App\Invoice\Enums\InvoiceStatus;
@ -16,9 +17,15 @@ use Tests\EndToEndTestCase;
class MemberIndexTest extends EndToEndTestCase
{
public function setUp(): void
{
parent::setUp();
Country::factory()->create(['name' => 'Deutschland']);
$this->withoutExceptionHandling()->login()->loginNami();
}
public function testItHandlesFullTextSearch(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()->count(2)->create(['firstname' => 'Alexander']);
Member::factory()->defaults()->create(['firstname' => 'Heinrich']);
@ -29,9 +36,13 @@ class MemberIndexTest extends EndToEndTestCase
->assertInertiaCount('data.data', 1);
}
public function testItGetsDefaultCountryFromDefaultModel(): void
{
$this->callFilter('member.index', [])->assertInertiaPath('data.meta.default.country_id', Country::firstWhere('name', 'Deutschland')->id);
}
public function testItHandlesAddress(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()->create(['address' => '']);
Member::factory()->defaults()->create(['zip' => '']);
Member::factory()->defaults()->create(['location' => '']);
@ -52,7 +63,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItHandlesBirthday(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()->create(['birthday' => null]);
Member::factory()->defaults()->count(2)->create();
@ -65,7 +75,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItHandlesBillKind(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()->postBillKind()->create();
Member::factory()->defaults()->emailBillKind()->count(2)->create();
@ -80,7 +89,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItHandlesGroupIds(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$group = Group::factory()->create();
$otherGroup = Group::factory()->create();
$thirdGroup = Group::factory()->create();
@ -101,7 +109,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItHandlesActivitiesAndSubactivities(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->name('€ Mitglied')->create();
$schnuppermitglied = Activity::factory()->name('Schnuppermitgliedschaft')->create();
$woelfling = Subactivity::factory()->name('Wölfling')->create();
@ -127,7 +134,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItHandlesActivityAndSubactivityForSingleMembership(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->name('€ Mitglied')->create();
$schnuppermitglied = Activity::factory()->name('Schnuppermitgliedschaft')->create();
$woelfling = Subactivity::factory()->name('Wölfling')->create();
@ -144,7 +150,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItIgnoresInactiveMemberships(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->name('€ Mitglied')->create();
$woelfling = Subactivity::factory()->name('Wölfling')->create();
Member::factory()->defaults()->has(Membership::factory()->for($mitglied)->for($woelfling)->ended())->create();
@ -158,7 +163,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItListensForMembershipDeletion(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->name('€ Mitglied')->create();
$member = Member::factory()->defaults()->has(Membership::factory()->for($mitglied))->create();
$member->memberships->first()->delete();
@ -171,7 +175,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItFiltersForMemberships(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->create();
$woelfling = Subactivity::factory()->create();
$juffi = Subactivity::factory()->create();
@ -201,7 +204,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testGroupOfMembershipsFilterCanBeEmpty(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$mitglied = Activity::factory()->create();
$woelfling = Subactivity::factory()->create();
$group = Group::factory()->create();
@ -221,7 +223,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItFiltersForSearchButNotForPayments(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()
->has(InvoicePosition::factory()->for(Invoice::factory()))
->create(['firstname' => 'firstname']);
@ -234,7 +235,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItIgnoresPaidInvoices(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
Member::factory()->defaults()
->has(InvoicePosition::factory()->for(Invoice::factory()->status(InvoiceStatus::PAID)))
->create();
@ -247,7 +247,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItIncludesMembers(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$member = Member::factory()->defaults()->create(['birthday' => null, 'location' => '']);
sleep(1);
@ -259,7 +258,6 @@ class MemberIndexTest extends EndToEndTestCase
public function testItExcludesMembers(): void
{
$this->withoutExceptionHandling()->login()->loginNami();
$member = Member::factory()->defaults()->create(['birthday' => null]);
sleep(1);