From ea063c4304879807ba38762d9e401ab37b26b8b8 Mon Sep 17 00:00:00 2001 From: Sam Poyigi Date: Thu, 10 Dec 2020 22:59:33 +0000 Subject: [PATCH] Fix #28 --- Extension.php | 4 +- ...2020_12_10_000300_update_reviews_table.php | 49 +++++++++++++++++++ language/en/default.php | 1 + models/config/reviewsettings.php | 2 +- 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2020_12_10_000300_update_reviews_table.php diff --git a/Extension.php b/Extension.php index e38118b..a2aab87 100644 --- a/Extension.php +++ b/Extension.php @@ -28,7 +28,9 @@ public function boot() { Event::subscribe(MaxOrderPerTimeslotReached::class); - View::share('showReviews', ReviewSettings::get('allow_reviews', FALSE) == TRUE); + Event::listen('router.beforeRoute', function ($url, $router) { + View::share('showReviews', ReviewSettings::get('allow_reviews', FALSE) == TRUE); + }); $this->addReviewsRelationship(); $this->addAssetsToReviewsSettingsPage(); diff --git a/database/migrations/2020_12_10_000300_update_reviews_table.php b/database/migrations/2020_12_10_000300_update_reviews_table.php new file mode 100644 index 0000000..6b1e425 --- /dev/null +++ b/database/migrations/2020_12_10_000300_update_reviews_table.php @@ -0,0 +1,49 @@ +integer('customer_id')->nullable()->change(); + $table->string('author')->nullable()->change(); + $table->text('review_text')->nullable()->change(); + }); + + $this->updateMorphsOnReviews(); + } + + public function down() + { + } + + protected function updateMorphsOnReviews() + { + if (DB::table('igniter_reviews') + ->where('sale_type', 'Admin\Models\Orders_model') + ->orWhere('sale_type', 'Admin\Models\Reservations_model') + ->count() + ) return; + + $morphs = [ + 'order' => 'Admin\Models\Orders_model', + 'reservation' => 'Admin\Models\Reservations_model', + ]; + + DB::table('igniter_reviews')->get()->each(function ($model) use ($morphs) { + if (!isset($morphs[$model->sale_type])) + return FALSE; + + DB::table('igniter_reviews')->where('review_id', $model->review_id)->update([ + 'sale_type' => $morphs[$model->sale_type], + ]); + }); + } +} diff --git a/language/en/default.php b/language/en/default.php index c0e22f4..e458549 100644 --- a/language/en/default.php +++ b/language/en/default.php @@ -240,6 +240,7 @@ 'help_allow_reviews' => 'Enable or disable new customer review entry and display of reviews on storefront', 'help_approve_reviews' => 'Approve new review entry automatically or manually', + 'help_hints' => 'Used when adding reviews.', 'error_not_found_in_order' => 'The sale ID entered can not be found in orders', 'error_not_found_in_reservation' => 'The sale ID entered can not be found in reservations', diff --git a/models/config/reviewsettings.php b/models/config/reviewsettings.php index 3f0e728..3672d9c 100644 --- a/models/config/reviewsettings.php +++ b/models/config/reviewsettings.php @@ -45,7 +45,7 @@ 'tab' => 'lang:igniter.local::default.reviews.text_tab_title_reviews', 'type' => 'partial', 'path' => '$/igniter/local/views/reviews/ratings', - 'commentAbove' => 'lang:admin::lang.ratings.help_hints', + 'commentAbove' => 'lang:igniter.local::default.reviews.help_hints', ], ], 'rules' => [