diff --git a/app/Datatables/Shop/ProducersDataTable.php b/app/Datatables/Shop/ProducersDataTable.php
new file mode 100644
index 00000000..3a0b4df2
--- /dev/null
+++ b/app/Datatables/Shop/ProducersDataTable.php
@@ -0,0 +1,51 @@
+withCount(['Articles', 'tags', 'images']);
+ return $this->buildQuery($model);
+ }
+
+
+ public function modifier($datatables)
+ {
+ $datatables
+ ->editColumn('thumb', function (Merchandise $merchandise) {
+ return Merchandises::getThumb($merchandise->image);
+ })
+ ->editColumn('tags2', function (Merchandise $merchandise) {
+ $html = '';
+ foreach ($merchandise->tags as $tag) {
+ $html .= '' . $tag->slug . ' ';
+ }
+ return $html;
+ })
+ ->rawColumns(['thumb', 'tags2', 'action']);
+ return parent::modifier($datatables);
+ }
+
+
+ protected function getColumns()
+ {
+ return [
+ Column::make('thumb')->title('')->searchable(false)->orderable(false)->width(40)->class('text-center'),
+ Column::make('name')->title('Nom'),
+ Column::make('tags2')->title('Tags')->searchable(false)->orderable(false),
+ Column::make('articles_count')->title('#Art')->class('text-right')->searchable(false),
+ Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false),
+ Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false),
+ $this->makeColumnButtons(),
+ ];
+ }
+}
diff --git a/app/Http/Controllers/Admin/Shop/ProducerController.php b/app/Http/Controllers/Admin/Shop/ProducerController.php
new file mode 100644
index 00000000..5e425e3d
--- /dev/null
+++ b/app/Http/Controllers/Admin/Shop/ProducerController.php
@@ -0,0 +1,69 @@
+render('Admin.Shop.Producers.list');
+ }
+
+ public function create()
+ {
+ $data['tags_list'] = TagGroups::getTreeTags();
+ return view('Admin.Shop.Producers.create', $data);
+ }
+
+ public function store(Request $request)
+ {
+ $data = $request->all();
+ Producers::storeFull($data);
+ return redirect()->route('Admin.Shop.Producers.index');
+ }
+
+ public function show($id)
+ {
+ return view('Admin.Shop.Producers.view', Producers::get($id));
+ }
+
+ public function edit($id)
+ {
+ $data['producer'] = Producers::getFull($id);
+ $data['tags_list'] = TagGroups::getTreeTags();
+ return view('Admin.Shop.Producers.edit', $data);
+ }
+
+ public function destroy($id)
+ {
+ return Producers::destroy($id);
+ }
+
+ public function getImages(Request $request, $id = false, $can_edit = true)
+ {
+ $id = $id ? $id : $request->input('id');
+ $data['images'] = Producers::getImages($id);
+ $data['can_edit'] = $can_edit;
+ return view('components.uploader.mini-gallery-items', $data);
+ }
+
+ public function deleteImage(Request $request)
+ {
+ $id = $request->input('id');
+ $index = $request->input('index');
+ return Producers::deleteImage($id, $index);
+ }
+
+ public function exportExcel()
+ {
+ return Producers::exportExcel();
+ }
+}
diff --git a/app/Http/Controllers/Shop/CategoryController.php b/app/Http/Controllers/Shop/CategoryController.php
index f9609b0f..577e6e52 100644
--- a/app/Http/Controllers/Shop/CategoryController.php
+++ b/app/Http/Controllers/Shop/CategoryController.php
@@ -27,7 +27,7 @@ class CategoryController extends Controller
// dump($data['articles']);
// exit;
$data['tags'] = TagGroups::getWithTagsAndCountOffers();
- return view('Shop.shelve', $data);
+ return view('Shop.Shelves.shelve', $data);
}
public function getTree()
diff --git a/app/Models/Shop/Producer.php b/app/Models/Shop/Producer.php
new file mode 100644
index 00000000..47833740
--- /dev/null
+++ b/app/Models/Shop/Producer.php
@@ -0,0 +1,31 @@
+morphMany(Article::class, 'product');
+ }
+
+ public function tags()
+ {
+ return $this->morphToMany(Tag::class, 'taggable');
+ }
+}
diff --git a/resources/views/Admin/Shop/Producers/create.blade.php b/resources/views/Admin/Shop/Producers/create.blade.php
new file mode 100644
index 00000000..15dd0396
--- /dev/null
+++ b/resources/views/Admin/Shop/Producers/create.blade.php
@@ -0,0 +1,11 @@
+@extends('layout.index', [
+ 'title' => __('shop.merchandises.title'),
+ 'subtitle' => __('shop.merchandises.add'),
+ 'breadcrumb' => [__('shop.merchandises.title'), __('shop.merchandises.add')]
+])
+
+@section('content')
+ {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
+ @include('Admin.Shop.Merchandises.form')
+
+@endsection
diff --git a/resources/views/Admin/Shop/Producers/edit.blade.php b/resources/views/Admin/Shop/Producers/edit.blade.php
new file mode 100644
index 00000000..f27012c1
--- /dev/null
+++ b/resources/views/Admin/Shop/Producers/edit.blade.php
@@ -0,0 +1,12 @@
+@extends('layout.index', [
+ 'title' => __('Shop.merchandises.title'),
+ 'subtitle' => __('Shop.merchandises.edit'),
+ 'breadcrumb' => [__('Shop.merchandises.title'), __('Shop.merchandises.edit')]
+])
+
+@section('content')
+ {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }}
+
+ @include('Admin.Shop.Merchandises.form')
+
+@endsection
diff --git a/resources/views/Admin/Shop/Producers/form.blade.php b/resources/views/Admin/Shop/Producers/form.blade.php
new file mode 100644
index 00000000..92005db3
--- /dev/null
+++ b/resources/views/Admin/Shop/Producers/form.blade.php
@@ -0,0 +1,67 @@
+
+
+
+
+ {{ Form::label('name', 'Nom') }}
+ @include('components.form.input', ['name' => 'name', 'value' => $merchandise['name'] ?? null, 'required' => true])
+
+
+
+
+
+ {{ Form::label('tags', 'Tags') }}
+ @include('components.form.selects.select-tree', [
+ 'name' => 'tags[]',
+ 'list' => $tags_list,
+ 'values' => $merchandise['tags'] ?? null,
+ 'class' => 'select2 form-control',
+ 'multiple' => true
+ ])
+
+
+
+
+
+ {{ Form::label('description', 'Description') }}
+ @include('components.form.textarea', [
+ 'name' => 'description',
+ 'value' => $merchandise['description'] ?? null,
+ 'class' => 'editor',
+ 'rows' => 5,
+ 'required' => false,
+ ])
+
+
+
+
+
+
+ @include('components.uploader.widget', [
+ 'load_url' => route('Admin.Shop.Merchandises.getImages', ['id' => $merchandise['id'] ?? false]),
+ 'delete_url' => route('Admin.Botanic.Varieties.deleteImage'),
+ 'name' => 'images',
+ ])
+
+
+
+
+@include('components.save')
+
+@include('load.form.appender')
+@include('load.form.editor')
+@include('load.form.save')
+@include('load.form.select2')
+@include('load.layout.chevron')
+@include('boilerplate::load.fileinput')
+@include('boilerplate::load.tinymce')
+
+@push('js')
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/Admin/Shop/Producers/list.blade.php b/resources/views/Admin/Shop/Producers/list.blade.php
new file mode 100644
index 00000000..4be55daf
--- /dev/null
+++ b/resources/views/Admin/Shop/Producers/list.blade.php
@@ -0,0 +1,12 @@
+@extends('layout.index', [
+ 'title' => __('Marchandises'),
+ 'subtitle' => __('Liste de marchandises'),
+ 'breadcrumb' => [__('Shop.merchandises.title')]
+])
+
+@section('content')
+ @component('components.card')
+ @include('components.datatable', ['route' => route('Admin.Shop.Merchandises.index'), 'model' => 'merchandises'])
+ @endcomponent
+@endsection
+
diff --git a/resources/views/Admin/Shop/Producers/show.blade.php b/resources/views/Admin/Shop/Producers/show.blade.php
new file mode 100644
index 00000000..d6de9419
--- /dev/null
+++ b/resources/views/Admin/Shop/Producers/show.blade.php
@@ -0,0 +1,30 @@
+@extends('layout.index', [
+ 'title' => __('products.title'),
+ 'subtitle' => __('products.title'),
+ 'breadcrumb' => [__('products.title')]
+])
+
+@section('content')
+
+
+
+
+
+
+
+
+
{{ name }}
+
+ {{ $product.section.name }}
+
+
+
+
+ @include('components.carousel')
+
+
+
+
+
+
+@endsection
diff --git a/resources/views/Shop/Articles/partials/article.blade.php b/resources/views/Shop/Articles/partials/article.blade.php
index a91ec7d0..f06bd6be 100644
--- a/resources/views/Shop/Articles/partials/article.blade.php
+++ b/resources/views/Shop/Articles/partials/article.blade.php
@@ -14,20 +14,24 @@
- Semence
- @if ($article['semences'] ?? false)
- {{ $article['semences']['price'] ?? null }} €
- @else
- Indisponible
- @endif
+
+ @if ($article['semences'] ?? false)
+ {{ $article['semences']['price'] ?? null }} €
+ @else
+ -
+ @endif
+
+ Semence
- Plant
- @if ($article['plants'] ?? false)
- {{ $article['plants']['price'] }} €
- @else
- Indisponible
- @endif
+
+ @if ($article['plants'] ?? false)
+ {{ $article['plants']['price'] }} €
+ @else
+ -
+ @endif
+
+ Plant
diff --git a/resources/views/Shop/layout/partials/category.blade.php b/resources/views/Shop/Shelves/partials/category.blade.php
similarity index 100%
rename from resources/views/Shop/layout/partials/category.blade.php
rename to resources/views/Shop/Shelves/partials/category.blade.php
diff --git a/resources/views/Shop/layout/partials/category_add.blade.php b/resources/views/Shop/Shelves/partials/category_add.blade.php
similarity index 58%
rename from resources/views/Shop/layout/partials/category_add.blade.php
rename to resources/views/Shop/Shelves/partials/category_add.blade.php
index cc0475c2..4a4d8b0f 100644
--- a/resources/views/Shop/layout/partials/category_add.blade.php
+++ b/resources/views/Shop/Shelves/partials/category_add.blade.php
@@ -1,24 +1,3 @@
-
-
-
-
-
-
-
-
-
-
-
- Il y a {{ $articles ? count($articles) : 0 }} article(s) dans la liste
-
-
-
@include('components.form.button', ['id' => 'by_cards', 'icon' => 'fa-th', 'class' => 'btn-success'])
diff --git a/resources/views/Shop/Shelves/partials/category_add_multi.blade.php b/resources/views/Shop/Shelves/partials/category_add_multi.blade.php
new file mode 100644
index 00000000..e89d2884
--- /dev/null
+++ b/resources/views/Shop/Shelves/partials/category_add_multi.blade.php
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/resources/views/Shop/layout/partials/category_articles.blade.php b/resources/views/Shop/Shelves/partials/category_articles.blade.php
similarity index 100%
rename from resources/views/Shop/layout/partials/category_articles.blade.php
rename to resources/views/Shop/Shelves/partials/category_articles.blade.php
diff --git a/resources/views/Shop/Shelves/partials/category_articles_count.blade.php b/resources/views/Shop/Shelves/partials/category_articles_count.blade.php
new file mode 100644
index 00000000..11f31af6
--- /dev/null
+++ b/resources/views/Shop/Shelves/partials/category_articles_count.blade.php
@@ -0,0 +1,5 @@
+
+
+ Il y a {{ $articles ? count($articles) : 0 }} article(s) dans la liste
+
+
diff --git a/resources/views/Shop/layout/partials/category_articles_rows.blade.php b/resources/views/Shop/Shelves/partials/category_articles_rows.blade.php
similarity index 100%
rename from resources/views/Shop/layout/partials/category_articles_rows.blade.php
rename to resources/views/Shop/Shelves/partials/category_articles_rows.blade.php
diff --git a/resources/views/Shop/shelve.blade.php b/resources/views/Shop/Shelves/shelve.blade.php
similarity index 71%
rename from resources/views/Shop/shelve.blade.php
rename to resources/views/Shop/Shelves/shelve.blade.php
index fabd93c8..4b6dded1 100644
--- a/resources/views/Shop/shelve.blade.php
+++ b/resources/views/Shop/Shelves/shelve.blade.php
@@ -11,13 +11,13 @@
{!! $category['description'] !!}
- @include('Shop.layout.partials.category_add')
+ @include('Shop.Shelves.partials.category_add')
@if ($display_by_rows ?? false)
- @include('Shop.layout.partials.category_articles_rows')
+ @include('Shop.Shelves.partials.category_articles_rows')
@else
- @include('Shop.layout.partials.category_articles')
+ @include('Shop.Shelves.partials.category_articles')
@endif
@endsection
diff --git a/routes/Admin/Shop/Producers.php b/routes/Admin/Shop/Producers.php
new file mode 100644
index 00000000..e201a4e8
--- /dev/null
+++ b/routes/Admin/Shop/Producers.php
@@ -0,0 +1,16 @@
+name('Producers.')->group(function () {
+ Route::get('', 'ProducerController@index')->name('index');
+ Route::get('getDataTable', 'ProducerController@getDataTable')->name('getDataTable');
+ Route::get('create', 'ProducerController@create')->name('create');
+ Route::delete('destroy/{id?}', 'ProducerController@destroy')->name('destroy');
+ Route::post('update', 'ProducerController@update')->name('update');
+ Route::post('store', 'ProducerController@store')->name('store');
+ Route::get('edit/{id}', 'ProducerController@edit')->name('edit');
+ Route::post('getSelect', 'ProducerController@getOptions')->name('getSelect');
+ Route::post('deleteImage', 'ProducerController@deleteImage')->name('deleteImage');
+ Route::any('getImages/{id?}/{can_edit?}', 'ProducerController@getImages')->name('getImages');
+ Route::any('exportExcel', 'ProducerController@exportExcel')->name('exportExcel');
+});
+
diff --git a/routes/Admin/Shop/route.php b/routes/Admin/Shop/route.php
index c4e64567..b1e0e830 100644
--- a/routes/Admin/Shop/route.php
+++ b/routes/Admin/Shop/route.php
@@ -17,6 +17,7 @@ Route::middleware('auth')->prefix('Shop')->namespace('Shop')->name('Shop.')->gro
include __DIR__ . '/Packages.php';
include __DIR__ . '/PriceLists.php';
include __DIR__ . '/PriceListValues.php';
+ include __DIR__ . '/Producers.php';
include __DIR__ . '/SaleChannels.php';
include __DIR__ . '/Tags.php';
include __DIR__ . '/TagGroups.php';