From: Louis Jeckel Date: Wed, 13 Jan 2021 12:54:27 +0000 (+0100) Subject: better subscription status, no more orga subscription X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=fd8b298afe8eae1e86b336e9cd75d25c99acf08d;p=psq.git better subscription status, no more orga subscription --- diff --git a/app/Nova/Actions/MakeProspect.php b/app/Nova/Actions/MakeProspect.php new file mode 100644 index 0000000..58d995d --- /dev/null +++ b/app/Nova/Actions/MakeProspect.php @@ -0,0 +1,43 @@ +map->update(['type' => User::TYPE_PROSPECT]); + } + + /** + * Get the fields available on the action. + * + * @return array + */ + public function fields() + { + return []; + } +} diff --git a/app/Nova/Actions/SetSubscriptionStatus.php b/app/Nova/Actions/SetSubscriptionStatus.php index ff4ae34..36c8c2a 100644 --- a/app/Nova/Actions/SetSubscriptionStatus.php +++ b/app/Nova/Actions/SetSubscriptionStatus.php @@ -16,22 +16,14 @@ class SetSubscriptionStatus extends Action { use InteractsWithQueue, Queueable; - private $setActive; - public $showOnTableRow = true; // public $withoutConfirmation = true; - public function __construct($setActive) - { - $this->setActive = $setActive; - } public function name() { - return $this->setActive ? - "Activer abonnement" : - "Désabonner"; + return "Activer abonnement"; } /** @@ -43,9 +35,6 @@ class SetSubscriptionStatus extends Action */ public function handle(ActionFields $fields, Collection $models) { - $models->map->update(['subscription_active' => $this->setActive]); - - if($this->setActive) { $models->map(function (Organization $orga) use($fields){ /** @see User::prepareForSubscription() */ @@ -59,15 +48,9 @@ class SetSubscriptionStatus extends Action $orga->members->map->sendSubscribedNotification(); } }); - } - - - $message = $this->setActive ? - "Abonnement activé avec succès" : - "Abonnement désactivé avec succès"; - return Action::message($message); + return Action::message("Abonnement activé avec succès"); } @@ -78,8 +61,8 @@ class SetSubscriptionStatus extends Action */ public function fields() { - return $this->setActive ? [ + return [ Boolean::make("Ne pas notifier", 'dont_notify') - ] : []; + ]; } } diff --git a/app/Nova/Actions/StartTrial.php b/app/Nova/Actions/StartTrial.php index 7be1b45..60b8b27 100644 --- a/app/Nova/Actions/StartTrial.php +++ b/app/Nova/Actions/StartTrial.php @@ -25,7 +25,7 @@ class StartTrial extends Action public function __construct() { - $this->confirmText = sprintf("Etes vous sûr de vouloir activer une période de découverte de %d jours ?", User::TRIAL_DURATION_DAYS); + $this->confirmText = sprintf("Etes vous sûr de vouloir activer une période de découverte ?"); } diff --git a/app/Nova/Actions/SubscribeUser.php b/app/Nova/Actions/SubscribeUser.php index 052a2cf..d872f94 100644 --- a/app/Nova/Actions/SubscribeUser.php +++ b/app/Nova/Actions/SubscribeUser.php @@ -35,7 +35,6 @@ class SubscribeUser extends Action $users->map(function(User $user) use($fields) { $user->type = User::TYPE_SUBSCRIBER; - $user->organization()->associate(\App\Organization::query()->findOrFail($fields->org_id)); $user->save(); if(! $fields->dont_notify) { $user->sendSubscribedNotification(); @@ -53,14 +52,6 @@ class SubscribeUser extends Action public function fields() { return [ - Select::make('Organisation', 'org_id')->options( - \App\Organization::query() - ->orderBy('name') - ->where('subscription_active', 1) - ->get() - ->pluck('name', 'id') - - )->searchable(), Boolean::make("Ne pas notifier", 'dont_notify') ]; } diff --git a/app/Nova/DiscoverUsers.php b/app/Nova/DiscoverUsers.php index 7c55ed4..3320b7e 100644 --- a/app/Nova/DiscoverUsers.php +++ b/app/Nova/DiscoverUsers.php @@ -4,6 +4,7 @@ namespace App\Nova; +use App\Nova\Actions\MakeProspect; use App\Nova\Actions\SubscribeUser; use Carbon\Carbon; use Laravel\Nova\Fields\DateTime; @@ -48,6 +49,7 @@ class DiscoverUsers extends User { return array_merge(parent::actions($request), [ new SubscribeUser, + new MakeProspect, ]); } diff --git a/app/Nova/Organization.php b/app/Nova/Organization.php index a12c012..93f48eb 100644 --- a/app/Nova/Organization.php +++ b/app/Nova/Organization.php @@ -63,7 +63,6 @@ class Organization extends Resource Text::make('Nom', 'name'), HasMany::make('Membres', 'members', User::class), BelongsTo::make('Type', 'type', OrganizationType::class), - Boolean::make('Abonnement actif', 'subscription_active') ]; } @@ -113,11 +112,10 @@ class Organization extends Resource public function actions(Request $request) { return array_merge([ - new SetSubscriptionStatus(true), + new SetSubscriptionStatus, new SetOrganizationMembersType(\App\User::TYPE_PROSPECT), new SendNotification, new SetOrganizationMembersType(\App\User::TYPE_DISCOVER), - new SetSubscriptionStatus(false), ], SendCustomNotification::getActions()); } } diff --git a/app/Nova/Subscriber.php b/app/Nova/Subscriber.php index 67f01ae..2c1cb56 100644 --- a/app/Nova/Subscriber.php +++ b/app/Nova/Subscriber.php @@ -4,6 +4,7 @@ namespace App\Nova; +use App\Nova\Actions\MakeProspect; use App\Nova\Actions\PdfAttachmentSetting; use App\Nova\Filters\AccountStates; use Illuminate\Http\Request; @@ -33,6 +34,7 @@ class Subscriber extends User public function actions(Request $request) { return array_merge([ + new MakeProspect, new PdfAttachmentSetting(true), new PdfAttachmentSetting(false) ],parent::actions($request)); diff --git a/app/Organization.php b/app/Organization.php index 3b56136..51035ad 100644 --- a/app/Organization.php +++ b/app/Organization.php @@ -20,7 +20,6 @@ class Organization extends Model implements SendsEmails use Searchable; protected $casts = [ - 'subscription_active' => 'boolean' ]; protected $guarded = []; @@ -33,22 +32,7 @@ class Organization extends Model implements SendsEmails ]; } - /** - * @return boolean - */ - public function isSubscribed(): bool - { - return $this->subscription_active; - } - /** - * @param Builder $builder - * @return Builder - */ - public function scopeSubscribed(Builder $builder): Builder - { - return $builder->where('subscription_active', 1); - } /** * @return HasMany diff --git a/app/User.php b/app/User.php index 4634fba..b39bd46 100644 --- a/app/User.php +++ b/app/User.php @@ -27,7 +27,6 @@ use Laravel\Scout\Searchable; * @property-read $name * @property Organization $organization * @property string $position - * @property bool $orgIsSubscribed (is user has org subscribed) * @property Carbon $trial_ends_at (is user is on trial) * @property Carbon $discover_ends_at * @property bool self_registered (if user used /register) @@ -130,10 +129,6 @@ class User extends Authenticatable implements MustVerifyEmail, SendsEmails 'badge' => 'danger', 'label' => 'Aucun abonnement' ], - 'org_subscribed' => [ - 'badge' => 'success', - 'label' => 'Abonnement actif (orga)' - ], 'ind_subscribed' => [ 'badge' => 'success', 'label' => 'Abonnement actif (indep)' @@ -334,16 +329,6 @@ class User extends Authenticatable implements MustVerifyEmail, SendsEmails return $this->hasValidSubscription() || $this->isOnDiscoverUser() || $this->onTrial(); } - /** - * @return bool - * Checks if affiliated organization has valid subscription - */ - public function orgIsSubscribed(): bool - { - return ($o = $this->organization) === null ? - false: - $o->isSubscribed(); - } /** * @return bool @@ -543,13 +528,7 @@ class User extends Authenticatable implements MustVerifyEmail, SendsEmails * ATTRIBUTES */ - /** - * @return bool - */ - public function getOrgIsSubscribedAttribute(): bool - { - return $this->orgIsSubscribed(); - } + /** * @return bool diff --git a/config/app.php b/config/app.php index cd20cea..a555cef 100644 --- a/config/app.php +++ b/config/app.php @@ -125,7 +125,7 @@ return [ 'aws_s3_url' => 'https://prescription-sante.s3.eu-west-3.amazonaws.com', - 'version' => '0.9.1', + 'version' => '0.10.0 beta 1', 'emails' => [ 'subscriptions' => 'abonnement@prescription-quotidien.com',