From 821012e527ae8955c83087437cac39e1aaf9e71d Mon Sep 17 00:00:00 2001 From: Louis Jeckel Date: Tue, 1 Sep 2020 10:41:04 +0200 Subject: [PATCH] stats compte --- app/Imports/UsersImport.php | 6 +-- .../Metrics/RegistrationCompletePartition.php | 48 +++++++++++++++++++ app/Nova/Metrics/UsersPartition.php | 6 +-- app/Nova/User.php | 2 + app/User.php | 18 +++++++ 5 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 app/Nova/Metrics/RegistrationCompletePartition.php diff --git a/app/Imports/UsersImport.php b/app/Imports/UsersImport.php index 524ed0f..d4fdad7 100644 --- a/app/Imports/UsersImport.php +++ b/app/Imports/UsersImport.php @@ -48,9 +48,9 @@ class UsersImport implements ToModel, WithValidation, WithHeadingRow $phone = implode('', $digits[0]); return new User([ - 'first_name' => Str::title($row['first_name']), - 'last_name' => Str::title($row['last_name']), - 'email' => Str::lower($row['email']), + 'first_name' => trim(Str::title($row['first_name'])), + 'last_name' => trim(Str::title($row['last_name'])), + 'email' => trim(Str::lower($row['email'])), 'position' => Str::title($row['position']), 'organization_id' => $org ? $org->id : null, 'address_line_1' => $row['address_line_1'], diff --git a/app/Nova/Metrics/RegistrationCompletePartition.php b/app/Nova/Metrics/RegistrationCompletePartition.php new file mode 100644 index 0000000..ca0499a --- /dev/null +++ b/app/Nova/Metrics/RegistrationCompletePartition.php @@ -0,0 +1,48 @@ +result([ + 'Compte activé' => User::registrationComplete()->count(), + 'Compte non activé' => User::registrationIncomplete()->count(), + ]); + } + + /** + * Determine for how many minutes the metric should be cached. + * + * @return \DateTimeInterface|\DateInterval|float|int + */ + public function cacheFor() + { +// return now()->addMinutes(5); + } + + /** + * Get the URI key for the metric. + * + * @return string + */ + public function uriKey() + { + return 'registration-complete'; + } + +} diff --git a/app/Nova/Metrics/UsersPartition.php b/app/Nova/Metrics/UsersPartition.php index 52c4467..ee9bd9c 100644 --- a/app/Nova/Metrics/UsersPartition.php +++ b/app/Nova/Metrics/UsersPartition.php @@ -20,10 +20,10 @@ class UsersPartition extends Partition public function calculate(NovaRequest $request) { return $this->result([ - 'Abonnés (groupe)' => $s = User::hasOrgSubscription()->count(), - 'Abonnés (indiv)' => $s = User::hasIndSubscription()->count(), + 'Abonnés (groupe)' => $g = User::hasOrgSubscription()->count(), + 'Abonnés (indiv)' => $i = User::hasIndSubscription()->count(), "Période d'essai" => $t = User::isOnTrial()->count(), - "Reste" => User::count() - $s - $t + "Reste" => User::count() - $i - $g - $t ]); } diff --git a/app/Nova/User.php b/app/Nova/User.php index 991ab99..1b2537d 100644 --- a/app/Nova/User.php +++ b/app/Nova/User.php @@ -6,6 +6,7 @@ use App\Nova\Actions\ImportUsers; use App\Nova\Actions\SendNotification; use App\Nova\Actions\StartTrial; use App\Nova\Actions\VerifyEmail; +use App\Nova\Metrics\RegistrationCompletePartition; use App\Nova\Metrics\SubscribedUsers; use App\Nova\Metrics\TotalUsers; use App\Nova\Metrics\TrialUsers; @@ -107,6 +108,7 @@ class User extends Resource return [ new TotalUsers, new UsersPartition, + new RegistrationCompletePartition ]; } diff --git a/app/User.php b/app/User.php index 4836338..cceda4c 100644 --- a/app/User.php +++ b/app/User.php @@ -297,6 +297,24 @@ class User extends Authenticatable implements MustVerifyEmail $builder->where('type', self::TYPE_SUBSCRIBER); } + /** + * @param Builder $builder + */ + public function scopeRegistrationComplete(Builder $builder): void + { + $builder->where('reg_complete', 1); + } + + + /** + * @param Builder $builder + */ + public function scopeRegistrationIncomplete(Builder $builder): void + { + $builder->where('reg_complete', 0); + } + + -- 2.39.5