Add leaders to dashboard
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
26965da04f
commit
15ba95e7e8
|
@ -11,7 +11,7 @@ class AgeGroupCountBlock extends Block
|
||||||
/**
|
/**
|
||||||
* @return Builder<Membership>
|
* @return Builder<Membership>
|
||||||
*/
|
*/
|
||||||
public function query(): Builder
|
public function memberQuery(): Builder
|
||||||
{
|
{
|
||||||
return Membership::select('subactivities.slug', 'subactivities.name')
|
return Membership::select('subactivities.slug', 'subactivities.name')
|
||||||
->selectRaw('COUNT(member_id) AS count')
|
->selectRaw('COUNT(member_id) AS count')
|
||||||
|
@ -23,10 +23,24 @@ class AgeGroupCountBlock extends Block
|
||||||
->orderBy('subactivity_id');
|
->orderBy('subactivity_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Builder<Membership>
|
||||||
|
*/
|
||||||
|
public function leaderQuery(): Builder
|
||||||
|
{
|
||||||
|
return Membership::selectRaw('"leiter" AS slug, "Leiter" AS name, COUNT(member_id) AS count')
|
||||||
|
->join('activities', 'memberships.activity_id', 'activities.id')
|
||||||
|
->join('subactivities', 'memberships.subactivity_id', 'subactivities.id')
|
||||||
|
->isLeader();
|
||||||
|
}
|
||||||
|
|
||||||
protected function data(): array
|
protected function data(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'groups' => $this->query()->get()->toArray(),
|
'groups' => [
|
||||||
|
...$this->memberQuery()->get()->toArray(),
|
||||||
|
...$this->leaderQuery()->get()->toArray(),
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,10 @@ class AgeGroupCountBlockTest extends TestCase
|
||||||
->has(Membership::factory()->in('€ Mitglied', 1, 'Wölfling', 3))
|
->has(Membership::factory()->in('€ Mitglied', 1, 'Wölfling', 3))
|
||||||
->defaults()
|
->defaults()
|
||||||
->create();
|
->create();
|
||||||
Member::factory()->has(Membership::factory()->in('€ LeiterIn', 2, 'Wölfling', 3))
|
Member::factory()->count(2)->has(Membership::factory()->in('€ LeiterIn', 2, 'Wölfling', 3))
|
||||||
|
->defaults()
|
||||||
|
->create();
|
||||||
|
Member::factory()->count(2)->has(Membership::factory()->in('€ LeiterIn', 2, 'Jungpfadfinder', 3))
|
||||||
->defaults()
|
->defaults()
|
||||||
->create();
|
->create();
|
||||||
|
|
||||||
|
@ -33,6 +36,7 @@ class AgeGroupCountBlockTest extends TestCase
|
||||||
'groups' => [
|
'groups' => [
|
||||||
['slug' => 'biber', 'name' => 'Biber', 'count' => 3],
|
['slug' => 'biber', 'name' => 'Biber', 'count' => 3],
|
||||||
['slug' => 'woelfling', 'name' => 'Wölfling', 'count' => 4],
|
['slug' => 'woelfling', 'name' => 'Wölfling', 'count' => 4],
|
||||||
|
['slug' => 'leiter', 'name' => 'Leiter', 'count' => 4],
|
||||||
],
|
],
|
||||||
], $data);
|
], $data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue