From: Louis Jeckel Date: Sat, 29 Aug 2020 13:43:08 +0000 (+0200) Subject: reorganize users in nova ° welcome email X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=936c1816cdf930104b0bbe47f91674a9768b4e6a;p=psq.git reorganize users in nova ° welcome email --- diff --git a/app/Helpers/SimpleTemplateEngine.php b/app/Helpers/SimpleTemplateEngine.php new file mode 100644 index 0000000..bde7ac6 --- /dev/null +++ b/app/Helpers/SimpleTemplateEngine.php @@ -0,0 +1,36 @@ +{$match}; + + }, $template); + + } + + public static function renderWithArray($template, $array) + { + return preg_replace_callback('/%[^%]*%/', function($matches) use($array){ + + $match = Str::before(Str::after($matches[0], '%'), '%'); + + return Arr::get($array, $match); + + }, $template); + + } + +} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 04f9afc..393e193 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -62,7 +62,7 @@ class RegisterController extends Controller 'email', 'max:255', Rule::unique('users') - ->where(fn(Builder $builder) => $builder->where('type', User::TYPE_USER)) + ->where(fn(Builder $builder) => $builder->where('type', User::TYPE_SUBSCRIBER)) ], 'password' => ['required', 'string', 'min:8', 'confirmed'], recaptchaFieldName() => recaptchaRuleName(), @@ -88,7 +88,7 @@ class RegisterController extends Controller 'employer' => $data['employer'], 'password' => Hash::make($data['password']), 'reg_complete' => true, - 'type' => User::TYPE_USER, + 'type' => User::TYPE_SUBSCRIBER, 'self_registered' => true, ] ); diff --git a/app/Imports/UsersImport.php b/app/Imports/UsersImport.php index 769f8e2..524ed0f 100644 --- a/app/Imports/UsersImport.php +++ b/app/Imports/UsersImport.php @@ -44,6 +44,8 @@ class UsersImport implements ToModel, WithValidation, WithHeadingRow ]); } + preg_match_all('/[0-9,+]+/', $row['phone'], $digits); + $phone = implode('', $digits[0]); return new User([ 'first_name' => Str::title($row['first_name']), @@ -54,7 +56,7 @@ class UsersImport implements ToModel, WithValidation, WithHeadingRow 'address_line_1' => $row['address_line_1'], 'postal_code' => $row['postal_code'], 'city' => $row['city'], - 'phone' => $row['phone'], + 'phone' => $phone, 'password' => \Hash::make(Str::random()), ]); } diff --git a/app/Notifications/Welcome.php b/app/Notifications/Welcome.php index ad74414..a189afc 100644 --- a/app/Notifications/Welcome.php +++ b/app/Notifications/Welcome.php @@ -43,10 +43,14 @@ class Welcome extends Notification implements ShouldQueue $link = $notifiable->routeWithToken('account.index', [], now()->addDays(7)); return (new MailMessage) ->subject('Nouvelle plateforme Prescription Santé') - ->line("Bonjour.......") - ->line("Veuillez cliquer sur ce lien pour créer votre mot de passe et ne rater aucun numéro de *Prescription Santé : Le Quotidien* !") - ->line("Cela ne vous prendra pas plus d'une minute.") - ->action('Compléter mon inscription', $link) + ->greeting('Cher Lecteur abonné à notre « petit » quotidien !') + ->line("Ce dernier est justement de moins en moins petit et nous allons donc vous faire profiter, dès lundi d’une nouvelle formule dont le contenu comme la forme seront tout à la fois plus riches et plus « agréables » à lire.") + ->line("Mais pour cela, nous devons vous demander un tout petit effort de quelques secondes à peine !") + ->line("En cliquant sur le bouton ci-dessous vous devez vous créer un mot de passe.") + ->action('Créer mon mot de passe', $link) + ->line("Ainsi dès Lundi prochain vous pourrez accéder en un clic à votre quotidien préféré.") + ->line("A très vite, donc ! ") + ->salutation("OLIVIER ROBICHON") ->addTag('welcome'); } diff --git a/app/Nova/Organization.php b/app/Nova/Organization.php index 62aeac0..7c8f051 100644 --- a/app/Nova/Organization.php +++ b/app/Nova/Organization.php @@ -39,7 +39,7 @@ class Organization extends Resource ]; - public static $group = "CRM"; + public static $group = "Organisations"; public static function label() { diff --git a/app/Nova/OrganizationType.php b/app/Nova/OrganizationType.php index bdb8af2..ef6826f 100644 --- a/app/Nova/OrganizationType.php +++ b/app/Nova/OrganizationType.php @@ -33,7 +33,15 @@ class OrganizationType extends Resource 'name', ]; - public static $group = "CRM"; + public static $group = "Organisations"; + + + public static function label() + { + return "Types d'organisations"; + } + + /** * Get the fields displayed by the resource. diff --git a/app/Nova/Prospect.php b/app/Nova/Prospect.php new file mode 100644 index 0000000..a866086 --- /dev/null +++ b/app/Nova/Prospect.php @@ -0,0 +1,24 @@ +where('type', 1); + } + +} diff --git a/app/Nova/SpecialUsers.php b/app/Nova/SpecialUsers.php new file mode 100644 index 0000000..dce98d6 --- /dev/null +++ b/app/Nova/SpecialUsers.php @@ -0,0 +1,24 @@ +where('type', 2); + } + +} diff --git a/app/Nova/Subscriber.php b/app/Nova/Subscriber.php new file mode 100644 index 0000000..4e9d488 --- /dev/null +++ b/app/Nova/Subscriber.php @@ -0,0 +1,24 @@ +where('type', 0); + } + +} diff --git a/app/Nova/User.php b/app/Nova/User.php index 28cf721..23d675a 100644 --- a/app/Nova/User.php +++ b/app/Nova/User.php @@ -19,6 +19,7 @@ use Laravel\Nova\Fields\Boolean; use Laravel\Nova\Fields\Country; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Place; +use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Panel; @@ -40,11 +41,11 @@ class User extends Resource */ public static $title = 'name'; - public static $group = "CRM"; +// public static $group = "CRM"; public static function label() { - return "Abonnés"; + return "Utilisateurs"; } /** @@ -66,14 +67,18 @@ class User extends Resource BelongsTo::make('Organisation', 'organization', Organization::class)->searchable(), ]), - Boolean::make('Compte actif', 'reg_complete'), - Badge::make('Etat', fn() => AppUser::statuses[$this->status]['label']) - ->map(Arr::pluck(AppUser::statuses, 'badge', 'label')), + Boolean::make('Compte activé', 'reg_complete')->hideWhenCreating(), + Select::make('Type')->options([ + AppUser::TYPE_SUBSCRIBER => 'Abonné', + AppUser::TYPE_PROSPECT => 'Prospect', + AppUser::TYPE_SPECIAL => 'Autre' + ])->hideFromIndex(), + Badge::make('Etat', fn() => AppUser::STATUSES[$this->status]['label']) + ->map(Arr::pluck(AppUser::STATUSES, 'badge', 'label')), ]; } - /** * Get the address fields for the resource. * diff --git a/app/Observers/UserObserver.php b/app/Observers/UserObserver.php index 7131edb..3c706c1 100644 --- a/app/Observers/UserObserver.php +++ b/app/Observers/UserObserver.php @@ -45,6 +45,14 @@ class UserObserver } + + public function creating(User $user) + { + if($user->password === null) { + $user->password = \Hash::make(\Str::random()); + } + } + /** * Handle the user "deleted" event. * diff --git a/app/User.php b/app/User.php index e32fe39..e4ec28f 100644 --- a/app/User.php +++ b/app/User.php @@ -92,7 +92,7 @@ class User extends Authenticatable implements MustVerifyEmail /** * Possible Statuses */ - public const statuses = [ + public const STATUSES = [ 'inactive' => [ 'badge' => 'danger', 'label' => 'Aucun abonnement' @@ -120,7 +120,7 @@ class User extends Authenticatable implements MustVerifyEmail ]; - public const TYPE_USER = 0; + public const TYPE_SUBSCRIBER = 0; public const TYPE_PROSPECT = 1; public const TYPE_SPECIAL = 2; @@ -292,7 +292,7 @@ class User extends Authenticatable implements MustVerifyEmail */ public function scopeRegisteredUser(Builder $builder): void { - $builder->where('type', self::TYPE_USER); + $builder->where('type', self::TYPE_SUBSCRIBER); } @@ -329,7 +329,7 @@ class User extends Authenticatable implements MustVerifyEmail $id = 'inactive'; switch($this->type) { - case self::TYPE_USER: + case self::TYPE_SUBSCRIBER: if($this->orgIsSubscribed) { $id = 'org_subscribed'; } @@ -362,7 +362,7 @@ class User extends Authenticatable implements MustVerifyEmail */ public function getStatusLabelAttribute(): string { - return self::statuses[$this->status]['label']; + return self::STATUSES[$this->status]['label']; } diff --git a/resources/views/admin/pdfFiles/show.blade.php b/resources/views/admin/pdfFiles/show.blade.php index d3599af..04057bf 100644 --- a/resources/views/admin/pdfFiles/show.blade.php +++ b/resources/views/admin/pdfFiles/show.blade.php @@ -10,6 +10,7 @@

{{$pdf->title}}

+

Visualiser

Publié le {{$pdf->created_at}}

{{$pdf->access_logs_count}} vues