From 0384594ddf3db8ddc2ba7e7ca11a0febaf66d99d Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Sat, 14 Jan 2023 21:48:41 +0100 Subject: [PATCH] gamified --- .../Livewire/BookCase/CommentBookCase.php | 2 + app/Http/Livewire/BookCase/HighscoreTable.php | 24 +++++ app/Models/User.php | 7 ++ resources/lang/de.json | 4 +- resources/lang/en.json | 3 +- .../book-case/comment-book-case.blade.php | 88 +++---------------- .../book-case/highscore-table.blade.php | 67 ++++++++++++++ .../views/livewire/frontend/header.blade.php | 4 + routes/web.php | 3 + 9 files changed, 125 insertions(+), 77 deletions(-) create mode 100644 app/Http/Livewire/BookCase/HighscoreTable.php create mode 100644 resources/views/livewire/book-case/highscore-table.blade.php diff --git a/app/Http/Livewire/BookCase/CommentBookCase.php b/app/Http/Livewire/BookCase/CommentBookCase.php index c75cd58a..f203165e 100644 --- a/app/Http/Livewire/BookCase/CommentBookCase.php +++ b/app/Http/Livewire/BookCase/CommentBookCase.php @@ -3,6 +3,7 @@ namespace App\Http\Livewire\BookCase; use App\Models\BookCase; +use App\Models\Country; use App\Models\User; use Livewire\Component; use Livewire\WithFileUploads; @@ -10,6 +11,7 @@ use Livewire\WithFileUploads; class CommentBookCase extends Component { use WithFileUploads; + public Country $country; public $photo; diff --git a/app/Http/Livewire/BookCase/HighscoreTable.php b/app/Http/Livewire/BookCase/HighscoreTable.php new file mode 100644 index 00000000..80746642 --- /dev/null +++ b/app/Http/Livewire/BookCase/HighscoreTable.php @@ -0,0 +1,24 @@ + User::query() + ->withCount([ + 'orangePills', + ]) + ->orderByDesc('orange_pills_count') + ->get(), + ]); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 12e21048..956afe08 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,6 +10,7 @@ use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Jetstream\HasProfilePhoto; use Laravel\Jetstream\HasTeams; use Laravel\Sanctum\HasApiTokens; +use QCod\Gamify\Gamify; use Spatie\Comments\Models\Concerns\InteractsWithComments; use Spatie\Comments\Models\Concerns\Interfaces\CanComment; use Spatie\Permission\Traits\HasRoles; @@ -24,6 +25,7 @@ class User extends Authenticatable implements MustVerifyEmail, CanComment use TwoFactorAuthenticatable; use HasRoles; use InteractsWithComments; + use Gamify; protected $guarded = []; @@ -53,4 +55,9 @@ class User extends Authenticatable implements MustVerifyEmail, CanComment protected $appends = [ 'profile_photo_url', ]; + + public function orangePills() + { + return $this->hasMany(OrangePill::class); + } } diff --git a/resources/lang/de.json b/resources/lang/de.json index 24cc7935..c01c4f03 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -619,5 +619,7 @@ "Dates for courses about Bitcoin.": "Termine für Kurse zum Thema Bitcoin.", "Lecturers in the surrounding area.": "Dozenten in der Umgebung.", "Venues in the surrounding area.": "Veranstaltungsorte in der Umgebung.", - "nova-spatie-permissions::lang.display_names\": \"": "" + "nova-spatie-permissions::lang.display_names\": \"": "", + "PlebArt": "", + "Highscore Table": "Highscore-Tabelle" } diff --git a/resources/lang/en.json b/resources/lang/en.json index 2e544b6c..42f75454 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -612,5 +612,6 @@ "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", "Venues in the surrounding area.": "", - "PlebArt": "" + "PlebArt": "", + "Highscore Table": "" } diff --git a/resources/views/livewire/book-case/comment-book-case.blade.php b/resources/views/livewire/book-case/comment-book-case.blade.php index b6333555..8f2efd0e 100644 --- a/resources/views/livewire/book-case/comment-book-case.blade.php +++ b/resources/views/livewire/book-case/comment-book-case.blade.php @@ -1,66 +1,4 @@
- - - {{-- HEADER --}} -
-
-
-
-
- - - - -
- @auth -
- @else - - @endauth -
-
-
-
{{-- MAIN --}}
@@ -240,19 +178,19 @@
@map([ - 'lat' => $bookCase->latitude, - 'lng' => $bookCase->longitude, - 'zoom' => 24, - 'markers' => [ - [ - 'title' => $bookCase->title, - 'lat' => $bookCase->latitude, - 'lng' => $bookCase->longitude, - 'url' => 'https://gonoware.com', - 'icon' => asset('img/btc-logo-6219386_1280.png'), - 'icon_size' => [42, 42], - ], - ], + 'lat' => $bookCase->latitude, + 'lng' => $bookCase->longitude, + 'zoom' => 24, + 'markers' => [ + [ + 'title' => $bookCase->title, + 'lat' => $bookCase->latitude, + 'lng' => $bookCase->longitude, + 'url' => 'https://gonoware.com', + 'icon' => asset('img/btc-logo-6219386_1280.png'), + 'icon_size' => [42, 42], + ], + ], ])
diff --git a/resources/views/livewire/book-case/highscore-table.blade.php b/resources/views/livewire/book-case/highscore-table.blade.php new file mode 100644 index 00000000..0fc6a969 --- /dev/null +++ b/resources/views/livewire/book-case/highscore-table.blade.php @@ -0,0 +1,67 @@ +
+ {{-- HEADER --}} + + {{-- MAIN --}} +
+
+
+
+

+ Orange-Pill {{ __('Highscore Table') }} +

+

+ {{ __('Hall of fame of our honorable plebs') }} +

+
+
+ +
    + + @foreach($plebs as $pleb) +
  • +
    + {{ $pleb->name }} +

    {{ $pleb->public_key }}

    +
    +
    {{ $pleb->orange_pills_count }} {{ __('Bookcases') }} {{ __('Orange pilled') }}
    +
    + {{ __('Points') }}: {{ $pleb->getPoints() }} +
    +
    +
    + {{----}} +
  • + @endforeach + + +
+ +
+
+ {{-- FOOTER --}} + +
diff --git a/resources/views/livewire/frontend/header.blade.php b/resources/views/livewire/frontend/header.blade.php index 71bf222c..bdb812dd 100644 --- a/resources/views/livewire/frontend/header.blade.php +++ b/resources/views/livewire/frontend/header.blade.php @@ -59,6 +59,10 @@ class="{{ request()->routeIs('bookCases.table.bookcases') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300"> {{ __('Bookcases') }} + + {{ __('Highscore Table') }} + @endif @if(str(request()->route()->getName())->contains('meetup.')) name('comment.bookcase'); + + Route::get('/high-score-table', \App\Http\Livewire\BookCase\HighscoreTable::class) + ->name('highScoreTable'); }); /*