From 4855254a7f4457c9c64e6233f099c4219bfc9564 Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Sat, 27 Mar 2021 01:16:37 +0100 Subject: [PATCH] Fixes --- app/DataTables/Shop/TagGroupsDataTable.php | 2 +- .../Botanic/Admin/SpecieController.php | 5 + .../Shop/Admin/ArticleController.php | 104 +++++++++--------- .../Shop/Admin/TagGroupController.php | 72 ++++++------ app/Menu/Shop.php | 2 +- app/Models/Shop/ArticleFamily.php | 4 +- app/Repositories/Botanic/Varieties.php | 5 +- app/Repositories/Shop/Articles.php | 5 +- .../Shop/Admin/Articles/create.blade.php | 2 - .../views/Shop/Admin/Articles/edit.blade.php | 2 - .../views/Shop/Admin/Articles/form.blade.php | 1 + .../partials/characteristics.blade.php | 35 +++++- .../partials/generic_prices.blade.php | 52 +++++++++ .../partials/prices/list-prices.blade.php | 4 +- .../Articles/partials/prices/prices.blade.php | 37 ++++--- .../PriceGenerics/partials/prices.blade.php | 9 ++ .../views/Shop/Admin/TagGroups/list.blade.php | 2 +- routes/Botanic/Admin/Species.php | 1 + routes/Shop/Admin/PriceFamilies.php | 4 - routes/Shop/Admin/PriceFamilyValues.php | 7 -- routes/Shop/Admin/route.php | 1 - 21 files changed, 219 insertions(+), 137 deletions(-) create mode 100644 resources/views/Shop/Admin/Articles/partials/generic_prices.blade.php delete mode 100644 routes/Shop/Admin/PriceFamilies.php delete mode 100644 routes/Shop/Admin/PriceFamilyValues.php diff --git a/app/DataTables/Shop/TagGroupsDataTable.php b/app/DataTables/Shop/TagGroupsDataTable.php index 0c7e3648..71f2b096 100644 --- a/app/DataTables/Shop/TagGroupsDataTable.php +++ b/app/DataTables/Shop/TagGroupsDataTable.php @@ -8,7 +8,7 @@ use App\Models\Shop\TagGroup; class TagGroupsDataTable extends DataTable { - public $model_name = 'TagGroups'; + public $model_name = 'tag_groups'; public function query(TagGroup $model) { diff --git a/app/Http/Controllers/Botanic/Admin/SpecieController.php b/app/Http/Controllers/Botanic/Admin/SpecieController.php index 412e8a7c..0df93657 100644 --- a/app/Http/Controllers/Botanic/Admin/SpecieController.php +++ b/app/Http/Controllers/Botanic/Admin/SpecieController.php @@ -21,6 +21,11 @@ class SpecieController extends Controller return Species::getDatatable($request->all()); } + public function getOptions() + { + return response()->json(Species::getOptions()); + } + public function create() { return view('Botanic.Admin.Species.create'); diff --git a/app/Http/Controllers/Shop/Admin/ArticleController.php b/app/Http/Controllers/Shop/Admin/ArticleController.php index 14b6f6ac..4926dd87 100644 --- a/app/Http/Controllers/Shop/Admin/ArticleController.php +++ b/app/Http/Controllers/Shop/Admin/ArticleController.php @@ -10,66 +10,66 @@ use App\DataTables\Shop\ArticlesDataTable; class ArticleController extends Controller { - public function index(ArticlesDataTable $dataTable) - { - return $dataTable->render('Shop.Admin.Articles.list'); - } + public function index(ArticlesDataTable $dataTable) + { + return $dataTable->render('Shop.Admin.Articles.list'); + } - public function getDatatable(Request $request) - { - return Articles::getTables($request->all()); - } + public function getDatatable(Request $request) + { + return Articles::getTables($request->all()); + } - public function create() - { - $data = $this->getMeta(); - return view('Shop.Admin.Articles.create', $data); - } + public function create() + { + $data = $this->getMeta(); + return view('Shop.Admin.Articles.create', $data); + } - public function store(Request $request) - { - Articles::storeFull($request->all()); - return redirect()->route('Shop.Admin.Articles.index'); - } + public function store(Request $request) + { + Articles::storeFull($request->all()); + return redirect()->route('Shop.Admin.Articles.index'); + } - public function show($id) - { - $data = Articles::get($id); - return view('Shop.Admin.Articles.view', $data); - } + public function show($id) + { + $data = Articles::get($id); + return view('Shop.Admin.Articles.view', $data); + } - public function edit($id) - { - $data = Articles::getFull($id); - return view('Shop.Admin.Articles.edit', $data); - } + public function edit($id) + { + $data = Articles::getFull($id); + return view('Shop.Admin.Articles.edit', $data); + } - public function update(Request $request) - { - // - } + public function update(Request $request) + { + // + } - public function destroy($id) - { - return Articles::destroy($id); - } + public function destroy($id) + { + return Articles::destroy($id); + } - public function getMeta($data = []) - { - return Articles::getMeta($data); - } + public function getMeta($data = []) + { + return Articles::getMeta($data); + } - public function getImages(Request $request, $id = false) - { - $id = $id ? $id : $request->input('id'); - $data['images'] = Articles::getImages($id); - return view('components.uploader.mini-gallery-items', $data); - } + public function getImages(Request $request, $id = false) + { + $id = $id ? $id : $request->input('id'); + $data['images'] = Articles::getImages($id); + return view('components.uploader.mini-gallery-items', $data); + } - public function deleteImage(Request $request) - { - $id = $request->input('id'); - $index = $request->input('index'); - return Articles::deleteImage($id, $index); - } + public function deleteImage(Request $request) + { + $id = $request->input('id'); + $index = $request->input('index'); + return Articles::deleteImage($id, $index); + } } diff --git a/app/Http/Controllers/Shop/Admin/TagGroupController.php b/app/Http/Controllers/Shop/Admin/TagGroupController.php index 7e4412c7..85d5a6f8 100644 --- a/app/Http/Controllers/Shop/Admin/TagGroupController.php +++ b/app/Http/Controllers/Shop/Admin/TagGroupController.php @@ -5,52 +5,52 @@ namespace App\Http\Controllers\Shop\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; -use App\Repositories\Shop\TagGroup; +use App\Repositories\Shop\TagGroups; use App\DataTables\Shop\TagGroupsDataTable; class TagGroupController extends Controller { - public function index(TagGroupsDataTable $dataTable) - { - return $dataTable->render('Shop.Admin.TagGroups.list'); - } + public function index(TagGroupsDataTable $dataTable) + { + return $dataTable->render('Shop.Admin.TagGroups.list'); + } - public function getDatatable(Request $request) - { - return TagGroups::getTables($request->all()); - } + public function getDatatable(Request $request) + { + return TagGroups::getTables($request->all()); + } - public function create($data) - { - return view('Shop.Admin.TagGroups.create', $data); - } + public function create($data) + { + return view('Shop.Admin.TagGroups.create', $data); + } - public function store(Request $request) - { - $ret = TagGroups::store($request->all()); - return redirect()->route('Shop.Admin.TagGroups.index'); - } + public function store(Request $request) + { + $ret = TagGroups::store($request->all()); + return redirect()->route('Shop.Admin.TagGroups.index'); + } - public function show($id) - { - $data = TagGroups::get($id); - return view('Shop.Admin.TagGroups.view', $data); - } + public function show($id) + { + $data = TagGroups::get($id); + return view('Shop.Admin.TagGroups.view', $data); + } - public function edit($id) - { - $data = TagGroups::get($id); - return view('Shop.Admin.TagGroups.edit', $data); - } + public function edit($id) + { + $data = TagGroups::get($id); + return view('Shop.Admin.TagGroups.edit', $data); + } - public function update(Request $request) - { - // - } + public function update(Request $request) + { + // + } - public function destroy($id) - { - return TagGroups::destroy($id); - } + public function destroy($id) + { + return TagGroups::destroy($id); + } } diff --git a/app/Menu/Shop.php b/app/Menu/Shop.php index ec30e15c..9f4e4a23 100644 --- a/app/Menu/Shop.php +++ b/app/Menu/Shop.php @@ -15,7 +15,7 @@ class Shop $menu->addTo('shop', 'Articles', [ 'route' => 'Shop.Admin.Articles.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.Articles.*'])->order(1); - $menu->addTo('shop', 'Categories', [ 'route' => 'Shop.Admin.Categories.index', 'permission' => 'backend_access' ]) + $menu->addTo('shop', 'Rayons', [ 'route' => 'Shop.Admin.Categories.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.Categories.*'])->order(2); $menu->addTo('shop', 'Familles d\'articles', [ 'route' => 'Shop.Admin.ArticleFamilies.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.ArticleFamilies.*'])->order(3); diff --git a/app/Models/Shop/ArticleFamily.php b/app/Models/Shop/ArticleFamily.php index c3d82cb2..d259a0ff 100644 --- a/app/Models/Shop/ArticleFamily.php +++ b/app/Models/Shop/ArticleFamily.php @@ -22,8 +22,8 @@ class ArticleFamily extends Model return $this->hasMany('App\Models\Shop\Price'); } - public function unities() + public function packages() { - return $this->hasMany('App\Models\Shop\Unity'); + return $this->hasMany('App\Models\Shop\Package'); } } \ No newline at end of file diff --git a/app/Repositories/Botanic/Varieties.php b/app/Repositories/Botanic/Varieties.php index 598fc0a4..53b1f592 100644 --- a/app/Repositories/Botanic/Varieties.php +++ b/app/Repositories/Botanic/Varieties.php @@ -32,9 +32,10 @@ class Varieties $data = []; foreach ($varieties as $variety) { - $data[] = ['id' => $variety->id, 'text' => (isset($variety->specie->name) ? $variety->specie->name . ' ' : '') . $variety->name]; + $data[$variety->id] = (isset($variety->specie->name) ? $variety->specie->name . ' ' : '') . $variety->name; } - return collect($data)->sortBy('text')->values()->all(); + asort($data, SORT_NATURAL | SORT_FLAG_CASE); + return $data; } public static function getAll() diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index 59c74528..5eeda1c1 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -8,6 +8,8 @@ use Illuminate\Support\Str; use Yajra\DataTables\DataTables; +use App\Repositories\Botanic\Species; +use App\Repositories\Botanic\Varieties; use App\Models\Shop\Article; class Articles @@ -37,11 +39,12 @@ class Articles public static function getMeta(&$data = []) { + $data['products'] = ($data['product_type'] == 'App\Models\Botanic\Variety') ? Varieties::getOptionsWithSpecie() : Species::getOptions(); $data['categories_options'] = Categories::getOptions(); $data['price_generics'] = PriceGenericCategories::getOptionsWithChildrens(); $data['families_options'] = ArticleFamilies::getOptions(); $data['taxes_options'] = Taxes::getOptions(); - $data['packages'] = Packages::getSelectByFamily($data['article_family_id']); + $data['packages'] = ($data['article_family_id'] ?? false) ? Packages::getSelectByFamily($data['article_family_id']) : []; $data['unities'] = ($data['packages']['id'] ?? false) ? Unities::getSelectByPackage($data['packages']['id']) : []; $data['tags_list'] = TagGroups::getTreeTags(); $data['models_options'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés']; diff --git a/resources/views/Shop/Admin/Articles/create.blade.php b/resources/views/Shop/Admin/Articles/create.blade.php index 731e3d4f..cbf56444 100644 --- a/resources/views/Shop/Admin/Articles/create.blade.php +++ b/resources/views/Shop/Admin/Articles/create.blade.php @@ -4,8 +4,6 @@ 'breadcrumb' => [__('Shop.articles.title'), __('Shop.articles.add')] ]) -@include('boilerplate::load.fileinput') - @section('content') {{ Form::open(['route' => 'Shop.Admin.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }} diff --git a/resources/views/Shop/Admin/Articles/edit.blade.php b/resources/views/Shop/Admin/Articles/edit.blade.php index 4f22fb06..eced2b7b 100644 --- a/resources/views/Shop/Admin/Articles/edit.blade.php +++ b/resources/views/Shop/Admin/Articles/edit.blade.php @@ -4,8 +4,6 @@ 'breadcrumb' => ['Articles'] ]) -@include('boilerplate::load.fileinput') - @section('content') {{ Form::open(['route' => 'Shop.Admin.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }} diff --git a/resources/views/Shop/Admin/Articles/form.blade.php b/resources/views/Shop/Admin/Articles/form.blade.php index 64380c3d..5d96b0fe 100644 --- a/resources/views/Shop/Admin/Articles/form.blade.php +++ b/resources/views/Shop/Admin/Articles/form.blade.php @@ -1,5 +1,6 @@ @include('boilerplate::load.fileinput') @include('boilerplate::load.select2') +@include('load.set_options') @include('boilerplate::load.tinymce')
diff --git a/resources/views/Shop/Admin/Articles/partials/characteristics.blade.php b/resources/views/Shop/Admin/Articles/partials/characteristics.blade.php index abaf056e..fa94363a 100644 --- a/resources/views/Shop/Admin/Articles/partials/characteristics.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/characteristics.blade.php @@ -12,7 +12,7 @@
{{ Form::label('model_id', 'Produit') }}
- @include('components.select2', ['name' => 'product_id', 'id_name' => 'product_id', 'value' => isset($product_id) ? $product_id : null, 'class' => 'select2 form-control']) + @include('components.select', ['name' => 'product_id', 'id_name' => 'product_id', 'list' => $products ?? [], 'value' => isset($product_id) ? $product_id : null, 'class' => 'select2 form-control'])
@@ -64,7 +64,16 @@ }); $('#product_type').change( function() { - loadVarieties(); + var product_type = $(this).val(); + switch (product_type) { + case 'App\\Models\\Botanic\\Specie': + loadSpecies(); + break; + case 'App\\Models\\Botanic\\Variety': + default: + loadVarieties(); + break; + } }); function loadVarieties() { @@ -73,12 +82,28 @@ method : 'POST', data: {model: $('#product_type').val()}, success : function(data) { - $("#product_id").select2({data: data}); - $("#product_id").trigger('change'); + setOptions('#product_id', data); + // $("#product_id").select2({data: data}); + // $("#product_id").trigger('change'); } }); } - loadVarieties(); + function loadSpecies() { + console.log('loadSpecies'); + console.log($('#product_type').val()); + $.ajax({ + url : '{{ route('Botanic.Admin.Species.getSelect') }}', + method : 'POST', + data: {model: $('#product_type').val()}, + success : function(data) { + setOptions('#product_id', data); + // $("#product_id").select2({data: data}); + // $("#product_id").trigger('change'); + } + }); + } + + // loadVarieties(); @endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/Articles/partials/generic_prices.blade.php b/resources/views/Shop/Admin/Articles/partials/generic_prices.blade.php new file mode 100644 index 00000000..210d73d5 --- /dev/null +++ b/resources/views/Shop/Admin/Articles/partials/generic_prices.blade.php @@ -0,0 +1,52 @@ +@include('Shop.Admin.Articles.partials.generic_prices.block_generic_price_new') + +
+ @include('Shop.Admin.Articles.partials.generic_prices.list-generic_prices') +
+ + + + +@include('components.select-tree', ['name' => "article_price_generic_id", 'value' => $price['article_price_generic_id'] ?? null, 'list' => $price_generics ?? null, 'required' => false, 'class' => 'form-control-sm w-100']) + + +@push('js') + +@endpush diff --git a/resources/views/Shop/Admin/Articles/partials/prices/list-prices.blade.php b/resources/views/Shop/Admin/Articles/partials/prices/list-prices.blade.php index 7f35171a..7a82f47e 100644 --- a/resources/views/Shop/Admin/Articles/partials/prices/list-prices.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/prices/list-prices.blade.php @@ -8,8 +8,8 @@ @endpush diff --git a/resources/views/Shop/Admin/TagGroups/list.blade.php b/resources/views/Shop/Admin/TagGroups/list.blade.php index abd85ff8..d86f4e8c 100644 --- a/resources/views/Shop/Admin/TagGroups/list.blade.php +++ b/resources/views/Shop/Admin/TagGroups/list.blade.php @@ -5,5 +5,5 @@ ]) @section('content') - @include('components.datatable', ['route' => route('Shop.Admin.TagGroups.index'), 'model' => 'TagGroups']) + @include('components.datatable', ['route' => route('Shop.Admin.TagGroups.index'), 'model' => 'tag_groups']) @endsection diff --git a/routes/Botanic/Admin/Species.php b/routes/Botanic/Admin/Species.php index 14632b88..4b6ec9f3 100644 --- a/routes/Botanic/Admin/Species.php +++ b/routes/Botanic/Admin/Species.php @@ -7,6 +7,7 @@ Route::prefix('Species')->name('Species.')->group(function () { Route::post('update', 'SpecieController@update')->name('update'); Route::post('store', 'SpecieController@store')->name('store'); Route::get('edit/{id}', 'SpecieController@edit')->name('edit'); + Route::any('getSelect', 'SpecieController@getOptions')->name('getSelect'); Route::any('exportExcel', 'SpecieController@exportExcel')->name('exportExcel'); diff --git a/routes/Shop/Admin/PriceFamilies.php b/routes/Shop/Admin/PriceFamilies.php deleted file mode 100644 index 80ed9b20..00000000 --- a/routes/Shop/Admin/PriceFamilies.php +++ /dev/null @@ -1,4 +0,0 @@ -name('PriceFamilyValues.')->group(function () { - Route::any('getOptionsByFamily', 'PriceFamilyValueController@getOptionsByFamily')->name('getOptionsByFamily'); -}); - -Route::resource('PriceFamilyValues', 'PriceFamilyValueController'); diff --git a/routes/Shop/Admin/route.php b/routes/Shop/Admin/route.php index 4704297f..22cea7e8 100644 --- a/routes/Shop/Admin/route.php +++ b/routes/Shop/Admin/route.php @@ -13,7 +13,6 @@ Route::middleware('auth')->prefix('Admin')->namespace('Admin')->name('Admin.')-> include __DIR__ . '/Invoices.php'; include __DIR__ . '/OrderPayments.php'; include __DIR__ . '/Orders.php'; - include __DIR__ . '/PriceFamilies.php'; include __DIR__ . '/PriceGenerics.php'; include __DIR__ . '/Tags.php'; include __DIR__ . '/TagGroups.php';