From 93bec68016156b5803eeead833d340b0a429f5d4 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Mon, 7 Dec 2020 12:15:22 +0100 Subject: [PATCH] wip #3753 @1 --- app/Fields/FluidbookQuoteOrigin.php | 27 +++++++++++++++++++ .../FluidbookQuote/CreateFromWebsite.php | 10 ++++--- .../Admin/Operations/ReportOperation.php | 8 ++++-- app/Models/FluidbookQuote.php | 17 +++++++++--- 4 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 app/Fields/FluidbookQuoteOrigin.php diff --git a/app/Fields/FluidbookQuoteOrigin.php b/app/Fields/FluidbookQuoteOrigin.php new file mode 100644 index 000000000..14f6ad5a7 --- /dev/null +++ b/app/Fields/FluidbookQuoteOrigin.php @@ -0,0 +1,27 @@ +addClause('where', 'gclid', '=', ''); + } else { + $crud->addClause('where', 'gclid', '!=', ''); + } + } + +} diff --git a/app/Http/Controllers/Admin/Operations/FluidbookQuote/CreateFromWebsite.php b/app/Http/Controllers/Admin/Operations/FluidbookQuote/CreateFromWebsite.php index b9a16cc4f..b58958427 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookQuote/CreateFromWebsite.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookQuote/CreateFromWebsite.php @@ -9,10 +9,11 @@ use App\Http\Middleware\VerifyCsrfToken; use App\Mail\FluidbookQuoteReceived; use App\Models\Company; use App\Models\FluidbookQuote; -use App\Models\User; +use App\Models\AuthUser; use Cubist\Util\ArrayUtil; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route; +use Spatie\Permission\Models\Role; trait CreateFromWebsite { @@ -31,7 +32,7 @@ trait CreateFromWebsite $post['spam'] = $spam ? 'Oui' : 'Non'; if (!$spam) { - $r = User::where('email', $post['email']); + $r = AuthUser::where('email', $post['email']); if ($r->count() == 1) { $user = $r->first(); } else { @@ -48,7 +49,7 @@ trait CreateFromWebsite $company->save(); // Création de l'utilisateur - $user = new User(); + $user = new AuthUser(); $user->company = $company->id; $user->firstname = $post['prenom']; $user->lastname = $post['nom']; @@ -59,6 +60,7 @@ trait CreateFromWebsite $user->enabled = true; $user->e1_grade = 0; $user->save(); + $user->assignRole('fluidbook:client'); } @@ -67,6 +69,7 @@ trait CreateFromWebsite $quote->pages = $post['nombre_pages']; $quote->links = $post['nombre_liens']; $quote->langs = $post['nombre_langues']; + $quote->contact_type = $post['contact_type']; $quote->message = $post['detail']; $quote->coupon = $post['coupon']; $quote->gclid = $post['gclid']; @@ -108,6 +111,7 @@ trait CreateFromWebsite 'ville' => '', 'pays' => 'INT', 'site' => '', + 'contact_type'=>'', 'telephone' => '', 'produits' => '', 'nombre_pages' => '', diff --git a/app/Http/Controllers/Admin/Operations/ReportOperation.php b/app/Http/Controllers/Admin/Operations/ReportOperation.php index 8fe3e8906..a23fbb84f 100644 --- a/app/Http/Controllers/Admin/Operations/ReportOperation.php +++ b/app/Http/Controllers/Admin/Operations/ReportOperation.php @@ -49,7 +49,12 @@ trait ReportOperation $email = null; $data = $attempt->getPageData(); $a = [$data->get('id'), $data->get('created_at'), $data->get('score'), $data->get('passed') ? '1' : '0']; - foreach ($data->get('answers', []) as $aid => $answer) { + $answers = $data->get('answers', []); + + if (null === $answers || !is_array($answers)) { + continue; + } + foreach ($answers as $aid => $answer) { if (null === $answer) { continue; } @@ -63,7 +68,6 @@ trait ReportOperation } } - if (null !== $email) { if (!isset($users[$email])) { $users[$email] = ['totalAttempts' => 0, 'attemptsBeforePassing' => 0, 'passed' => false, 'worstScore' => 100, 'bestScore' => 0]; diff --git a/app/Models/FluidbookQuote.php b/app/Models/FluidbookQuote.php index 3a2020464..948e0f464 100644 --- a/app/Models/FluidbookQuote.php +++ b/app/Models/FluidbookQuote.php @@ -3,6 +3,7 @@ namespace App\Models; +use App\Fields\FluidbookQuoteOrigin; use App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation; use App\Http\Controllers\Admin\Operations\FluidbookQuote\ConfirmAssignmentOperation; use App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite; @@ -26,6 +27,9 @@ class FluidbookQuote extends CubistMagicAbstractModel public static function addOwnerClause(Builder $builder) { + if (backpack_user()->hasPermissionTo('fluidbook-quote:admin')) { + return; + } $builder->where('reseller', backpack_user()->id); } @@ -47,6 +51,13 @@ class FluidbookQuote extends CubistMagicAbstractModel 'column_type' => 'date', 'column_format' => null]); + $this->addField('contact_type', 'SelectFromArray', 'Type de client', ['options' => [ + 'agency' => 'Agence de communication', + 'freelancer' => 'Freelance', + 'company' => 'Société', + 'other' => 'Autre', + ]]); + $this->addField('message', 'Textarea', 'Message'); $this->addField('gclid', 'Text', 'Google Adwords ID (gclid)'); @@ -64,7 +75,7 @@ class FluidbookQuote extends CubistMagicAbstractModel 0 => 'Non traitée', 1 => 'En attente de traitement', 2 => 'Traitée', - ], 'column' => true]); + ], 'column' => true, 'filter' => true]); $this->addField('conversion', 'SelectFromArray', 'Conversion', ['options' => [ 0 => 'Pas de réponse', @@ -72,9 +83,9 @@ class FluidbookQuote extends CubistMagicAbstractModel 2 => 'Devis refusé', 3 => 'Projet validé', 4 => 'Déjà client', - ], 'column' => true, 'can' => 'fluidbook-quote:admin',]); + ], 'column' => true, 'can' => 'fluidbook-quote:admin', 'filter' => true]); - $this->addField('origin_column', 'ModelAttribute', 'Origine', ['column' => true, 'attribute' => 'origin']); + $this->addField('origin_column', FluidbookQuoteOrigin::class, 'Origine', ['column' => true,'filter'=>true]); $this->addField('fluidbooks', 'ModelAttribute', 'Fluidbooks', ['column' => true, 'column_label' => '', 'attribute' => 'user.e1_ws_count']); } -- 2.39.5